我是斯威夫特的初学者。我正在创建一个简单的Parse记事本iOS应用程序,用于练习。我试图从一个类访问另一个类中创建的uitextview。这导致uitextview为nil时出错。
例如,我的tableviewcell类非常简单,只有两个uiviews连接到它(插座连接正确):
@IBOutlet weak var titleLabel: UITextView!
@IBOutlet weak var descriptionLabel: UITextView!
override func awakeFromNib() {
titleLabel.text = "Title"
descriptionLabel.text = "Description"
}
然后我尝试从我的detailviewcontroller类访问这些属性,但是在解开可选的“”时出现错误“意外发现nil,即使我的titleLabel和descriptionLabel都具有以编程方式设置的值。
detailviewcontroller类(这是在viewdidload中):
let customCell = TableViewCell()
var Title = customCell.titleLabel.text
let Description = customCell.descriptionLabel.text
我真的很感谢你的帮助。感谢。
*另请注意我的IBOutlets已正确连接
答案 0 :(得分:-1)
仅此行中的问题
let customCell = TableViewCell()
可以通过多种方式将值传递给DetailViewController,如果您通过segue更改视图,则可以使用此
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
//add if condition with segue identifier for proper functioning of this code
let selectedIndexPath = tableView.indexPathForSelectedRow!
let customCell = tableView.cellForRowAtIndexPath( selectedIndexPath ) as! TableViewCell
let destinationViewController = segue.destinationViewController as! DetailViewController
destinationViewController.Title = customCell.titleLabel.text!
destinationViewController.Description = customCell.descriptionLabel.text!
//you can set other properties too here
}
您的DetailViewController中的在函数viewdidload
之外声明变量Title和Description