我知道通过这种方式将coreDataStack传递给具有嵌入式导航控制器的viewController的方法。

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    let navigationController = window!.rootViewController as! UINavigationController
    let viewController = navigationController.topViewController as! ViewController

    viewController.coreDataStack = coreDataStack
    return true
}


我想将coreDataStack传递给没有导航控制器的viewController,

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let viewController = mainStoryboard.instantiateViewControllerWithIdentifier("Home") as! Home
    viewController.coreDataStack = coreDataStack

    return true
}


但是,viewController中的coreDataStack发现为nil。
我该怎么做?

最佳答案

您的代码正在创建视图控制器的新实例,而不引用现有实例。您应该可以使用:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    let viewController = window!.rootViewController as! ViewController
    viewController.coreDataStack = coreDataStack
    return true
}

关于swift - 如何在不使用导航 Controller 的情况下将Coredatastack从AppDelegate传递到 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36527592/

10-11 19:56