我无法访问tabbarcontroller下的视图控制器

时间:2014-01-08 22:19:40

标签: ios objective-c uinavigationcontroller interface-builder uitabbarcontroller

我有一个带有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;

1 个答案:

答案 0 :(得分:1)

您无法访问视图控制器的原因是因为您甚至没有将tabBarController链接到某种代码,然后继续做一些时髦的东西。

将界面构建器的tabBarcontroller链接到您的代码,只需创建自己的TabBarViewController类,调用它类似于MyTabBarViewController,然后将该类链接到界面构建器文件中的TabBarViewController。

完成后,您将能够从新班级访问标签栏视图控制器。

或者您可以通过代码在app app delegate中添加tabBarViewController属性,然后将windows.rootViewcontroller链接到该属性,以便在界面生成器中访问tabBarViewcontroller,而无需直接在IB中链接任何内容。但是,如对话聊天主题中所述,您对应用委托中的任何代码表示不感兴趣。

你也有[self.tabBarController viewControllers],而你可以代之以self.viewControllers