将值传递给下一个 viewController
Passing value over to next viewController
我目前正在 Swift
中编写一个应用程序,并且我以编程方式实现了所有 UI。我会觉得有点累,所以最近我决定使用 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
吗?
您没有访问 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
}
我目前正在 Swift
中编写一个应用程序,并且我以编程方式实现了所有 UI。我会觉得有点累,所以最近我决定使用 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
吗?
您没有访问 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
}