我目前正在Swift
编写应用程序,并以编程方式实现了所有用户界面。我会有点累,所以最近我决定使用storyboard
,但我遇到了一个错误。
当mainContext
从AppDelegate
传递到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
?
答案 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
}