将值传递给下一个viewController

时间:2016-09-11 15:14:08

标签: ios swift user-interface storyboard uistoryboardsegue

我目前正在Swift编写应用程序,并以编程方式实现了所有用户界面。我会有点累,所以最近我决定使用storyboard,但我遇到了一个错误。

mainContextAppDelegate传递到FirstViewController时,mainContext的值为nil。首先,当我以编程方式编写所有内容时,我的代码看起来像这样:

        let vc = FirstViewController()
        vc.mainContext = mainContext
        window?.rootViewController = vc

但是现在我正在使用StoryBoard,这不再有效了,因为我必须用它的ID实例化视图,如下所示:

            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            var vc = storyboard.instantiateViewControllerWithIdentifier("FirstView") as! FirstViewController
            vc.mainContext = mainContext

但在这种情况下,上下文为nil。如果我不像这样实例化VC,我的网点是nil,我收到此错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

是否有人知道如何通过我的mainContext

1 个答案:

答案 0 :(得分:1)

你没有访问rootViewController,你正在创建一个新的视图控制器而不用它做任何事情,访问rootViewController取代这个

let storyboard = UIStoryboard(name: "Main", bundle: nil)
var vc = storyboard.instantiateViewControllerWithIdentifier("FirstView") as! FirstViewController
vc.mainContext = mainContext

if let vc = self.window?.rootViewController as? FirstViewController {
    vc.mainContext = mainContext
}