应用程序.代理选项卡控制器Swift

应用程序.代理选项卡控制器Swift,swift,appdelegate,Swift,Appdelegate,嗨 我需要在App.deletgate中将我的选项卡控制器声明为我的rootcontroller,但我还需要在第二个视图控制器中声明我的managedObjectContext。有人对如何做到这一点有什么想法吗 我在上面的项目结构中添加了一个图像 App.Delegate有错误 导入UIKit 导入CoreData @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window:

我需要在App.deletgate中将我的选项卡控制器声明为我的rootcontroller,但我还需要在第二个视图控制器中声明我的managedObjectContext。有人对如何做到这一点有什么想法吗

我在上面的项目结构中添加了一个图像

App.Delegate有错误 导入UIKit 导入CoreData

 @UIApplicationMain
  class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


   func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)

    let rootNavigationController = mainStoryboard.instantiateViewControllerWithIdentifier("StoryboardIDRootNavigationController") as! UITabBarController

    // Configure View Controller
    let viewController = window?.rootViewController as? ViewController

    if let viewController = viewController{
        viewController.managedObjectContext = self.managedObjectContext
    }

    // Configure Window
    window?.rootViewController = rootNavigationController

 return true

}

UITabbarController有一个viewControllers属性,它是选项卡栏显示的根视图控制器数组。您可以使用它在第二个索引处获取控制器

此属性的默认值为零。配置选项卡栏控制器时,可以使用此属性为选项卡栏界面的每个选项卡指定内容。阵列中视图控制器的顺序与选项卡栏中的显示顺序相对应。因此,索引0处的控制器对应于最左边的选项卡,索引1处的控制器对应于右边的下一个选项卡,依此类推。如果视图控制器的数量超出了选项卡栏的容纳范围,则阵列末端的视图控制器由更多导航控制器管理,该控制器本身不包括在此阵列中


你能举个例子吗?你有核心数据栈吗?如果是,您在哪里初始化它?
let tabController = UITabBarController()

class CustomViewController: UIViewController {
  var managedObjectContext: NSManagedObjectContext?
}

if let viewController = tabController.viewControllers?[1] as? CustomViewController {
  viewController.managedObjectContext = self.managedObjectContext
}