在prepareForSegue中意外地发现无IBOutlet

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

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) } } 

我不断得到一个致命的错误:意外地发现零,而解包一个可选的值。 我曾尝试切换detailVC.label.text = "Test" detailVC.label.text = names[indexPath.row]但我不断收到相同的错误,每次。

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

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

您无法访问prepareForSegueDetailViewController IBOutlet ,因为它们尚未连接。

如注释中所述,在DetailViewController创build一个String属性,将其设置在prepareForSegue ,并将该标签的text属性设置为DetailViewController viewDidLoadviewWillAppear