将值传递给下一个 viewController

Passing value over to next viewController

我目前正在 Swift 中编写一个应用程序,并且我以编程方式实现了所有 UI。我会觉得有点累,所以最近我决定使用 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 吗?

您没有访问 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
}