我有几个嵌套在NavigationControllers中的视图控制器和一个主选项卡控制器。这是图像:
故事板的外观:
我想在第一个ViewController(main)中定义一个NSObject,但是我必须在app delegate中引用它。
let myStore = MyStore()
let tabController = window!.rootViewController as! UITabBarController
let mainViewController = tabController.navigationControllers.first.rootViewController as! MainViewController
mainViewController.myStore = myStore
但它似乎不起作用。
最初我没有标签控制器只有一个导航控制器,它的工作原理如下:
let myStore = MyStore()
let navController = window!.rootViewController as! UINavigationController
let mainViewController = navController.topViewController as! MainViewController
mainViewController.myStore = myStore
有人可以帮助我吗?
答案 0 :(得分:0)
UITabBarController
上没有属性navigationControllers。有一个navigationController(单数),但它指的是它拥有的导航控制器而不是选项卡中的导航控制器。
如果要引用选项卡导航控制器,则必须使用viewControllers
的{{1}}属性,这是所有属性的数组。然后,您可以浏览它们并找到您想要的那个。
更好的是,您可以创建一个分别保存数据的正确数据模型。