引用嵌套在Navigation&中的ViewController;标签控制器?

时间:2018-01-21 09:43:56

标签: swift xcode

我有几个嵌套在NavigationControllers中的视图控制器和一个主选项卡控制器。这是图像:

故事板的外观:

The Look of the Storyboard

我想在第一个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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

UITabBarController上没有属性navigationControllers。有一个navigationController(单数),但它指的是它拥有的导航控制器而不是选项卡中的导航控制器。

如果要引用选项卡导航控制器,则必须使用viewControllers的{​​{1}}属性,这是所有属性的数组。然后,您可以浏览它们并找到您想要的那个。

更好的是,您可以创建一个分别保存数据的正确数据模型。