在视图控制器之间进行 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 时出现致命错误的主要内容,如果未能解决你的问题,请参考以下文章

segueing时出现核心数据错误:无法在NSManagedObject类上调用指定的初始值设定项

加载库存表视图时出现致命错误(发现为零)

在故事板xcode中直接从视图控制器警告启动的Segues

重新加载表数据时出现致命错误:展开为零:需要帮助

SwiftUI - 使用“pushViewController”时出现致命错误

为啥在使用 pytest-qt 进行测试时出现致命的 Python 错误?