【问题标题】:Passing value over to next viewController将值传递给下一个 viewController
【发布时间】:2016-09-11 15:14:08
【问题描述】:

我目前正在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 的方法吗?

【问题讨论】:

    标签: ios swift user-interface storyboard uistoryboardsegue


    【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 2017-05-11
      • 1970-01-01
      相关资源
      最近更新 更多