Swift 2(iOS 9) - 使用一个ViewController进行创建和更新时出现导航栏错误

时间:2016-03-14 12:32:22

标签: ios swift

在我的应用中,我使用了一个可以执行创建新数据和更新数据的ViewController。

数据传递到此目标ViewController但我在if data != nil

内设置导航栏时遇到错误
override func viewDidAppear(animated: Bool) {

    if data != nil {
        self.navigationController!.navigationBar.topItem!.title = "Edit ...";
    } else {
        self.navigationController!.navigationBar.topItem!.title = "New ...";
    }

    ...

}

它说Thread 1: EXE_BAD_INSTRUCTION (code=...)

以及控制台中的以下内容。

2016-03-15 01:25:16.526 Project[2508:130565] <UIView: 0x7fccfd814c70; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7fccfd814de0>>'s window is not equal to <Project.CreateRecipeVC: 0x7fccfb67b5d0>'s view's window!
fatal error: unexpectedly found nil while unwrapping an Optional value

我认为导航栏对其窗口视图或其他东西感到困惑。 在模拟器中,导航栏未显示在更新页面上。

如何让导航栏同时用于创建和更新?

1 个答案:

答案 0 :(得分:1)

首先,你不应该使用Application.CutCopyMode=False 解决方案是您使用if data != nil来获得更好的实践。

这样的事情将修复找到的无错误

if let

同样适用于if let result = data { } else { } ,您应该测试它是否为零。

之后,检查您的连接。如果所有插座和操作都牢固连接。