在视图控制器之间进行 segue 时出现致命错误

Posted

技术标签:

【中文标题】在视图控制器之间进行 segue 时出现致命错误【英文标题】:Fatal error while doing segue between viewcontrollers 【发布时间】:2015-06-06 13:49:57 【问题描述】:

我在从一个视图控制器进行转场时遇到致命错误。

magicNumber 是整数变量 MagicNo 是第二个视图控制器中的标签

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) 
    if segue.identifier == "start"
    
        var secondScreen = segue.destinationViewController as! SecondViewController

        secondScreen.magicNo.text = String(magicNumber)

    

错误就在下面这一行

错误是:

致命错误:在展开可选值时意外发现 nil

secondScreen.magicNo.text = String(magicNumber)

【问题讨论】:

这个问题肯定是重复的。您无法分配到目标视图控制器中的插座,因为它们尚未设置。将您的字符串放入目标视图控制器中的属性变量中,然后将其移动到 viewDidLoad 中的标签中。 fatal error when prepared to segue to view controller的可能重复 这里没有足够的代码来诊断这个问题。 magicNumbernil,或者 magicNonil。这些都没有在提供的代码中设置或定义。 【参考方案1】:

secondScreen 是否嵌入在 UINavigationController 中?如果是这样,您将不得不这样做:

let secondScreen = (segue.destinationViewController as? UINavigationController)?.viewControllers[0] as? SecondViewController?

【讨论】:

以上是关于在视图控制器之间进行 segue 时出现致命错误的主要内容,如果未能解决你的问题,请参考以下文章