Swift - UIView.text显示为Nil

时间:2016-06-24 20:02:12

标签: ios swift uiview optional

我是斯威夫特的初学者。我正在创建一个简单的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已正确连接

1 个答案:

答案 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