出乎意料地在prepareForSegue中找到了nil IBOutlet [英] Unexpectedly found nil IBOutlet in prepareForSegue

查看:164
本文介绍了出乎意料地在prepareForSegue中找到了nil IBOutlet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个详细视图控制器,我想使用indexPath行将标签文本设置为从数组中获取的值。

I have a detail view controller, and I would like to set the label text to a value taken from an array using an indexPath row.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if(segue.identifier == "showView"){
        let detailVC: DetailViewController = segue.destinationViewController as! DetailViewController
        let indexPath = self.MainTableView.indexPathForSelectedRow!
        detailVC.label.text = "Test"
        self.MainTableView.deselectRowAtIndexPath(indexPath, animated: true)
        }
}

我不断收到致命错误:在展开可选值时意外发现nil。我已经尝试将 detailVC.label.text =Test切换为 detailVC.label.text = names [indexPath.row] 但我每次都会遇到同样的错误。

I keep getting a fatal error: unexpectedly found nil while unwrapping an optional value. I have tried switching detailVC.label.text = "Test" to detailVC.label.text = names[indexPath.row] but I keep getting the same error every time.

我使用相同的代码行来更改单元格的标签文本,没有错误,但是对于这个标签在空白视图的中心我似乎无法得到它对?有什么需要改变的想法?

I used the same lines of code for changing the cell's label text, with no errors, but for this label in the center of a blank view I cannot seem to get it right? Any thoughts on what needs to be changed?

顺便说一下,详细视图控制器中的标签是 @IBOutlet weak var label:UILabel!

By the way, the label in the detail view controller is @IBOutlet weak var label: UILabel!

推荐答案

您无法访问 IBOutlet DetailViewController in prepareForSegue 因为它们尚未连接。

You cannot access IBOutlets of DetailViewController in prepareForSegue because they are not connected yet.

如评论中所述,创建一个 String DetailViewController 中的属性,在 prepareForSegue 中设置并设置 viewDidLoad viewWillAppear 中标签的 text 属性 DetailViewController

As mentioned in the comments create a String property in DetailViewController, set it in prepareForSegue and set the text property of the label in viewDidLoad or viewWillAppear of DetailViewController.

这篇关于出乎意料地在prepareForSegue中找到了nil IBOutlet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆