我有一个带有3个子视图的tabbarcontroller。在IB中,我将3个导航控制器连接到tabbarcontroller,然后我连接到每个导航控制器,一个tableviewcontroller。我有想要从根tabviewcontroller设置的公共属性。
我的问题是...... 1)这是设置层次结构的正确方法吗?我听说你不应该在导航控制器中嵌入tabbarcontroller,所以我为每个需要的tableviewcontroller制作了3个导航控制器。
2)[AITBC描述]为空:/
NSArray *viewControllers = [self.tabBarController viewControllers];
AllItemTableViewController *AITBC = (AllItemTableViewController *)[viewControllers[0] rootViewController]; //[viewControllers[0] should be the first navigation controller, so I want its root view controller right?
AITBC.AllGroomedItemsArray = self.allGroomedData;
答案 0 :(得分:1)
您无法访问视图控制器的原因是因为您甚至没有将tabBarController链接到某种代码,然后继续做一些时髦的东西。
将界面构建器的tabBarcontroller链接到您的代码,只需创建自己的TabBarViewController类,调用它类似于MyTabBarViewController,然后将该类链接到界面构建器文件中的TabBarViewController。
完成后,您将能够从新班级访问标签栏视图控制器。
或者您可以通过代码在app app delegate中添加tabBarViewController属性,然后将windows.rootViewcontroller链接到该属性,以便在界面生成器中访问tabBarViewcontroller,而无需直接在IB中链接任何内容。但是,如对话聊天主题中所述,您对应用委托中的任何代码表示不感兴趣。
你也有[self.tabBarController viewControllers]
,而你可以代之以self.viewControllers
。