Ios 我能';t访问tabbarcontroller下的视图控制器

Ios 我能';t访问tabbarcontroller下的视图控制器,ios,objective-c,uinavigationcontroller,interface-builder,uitabbarcontroller,Ios,Objective C,Uinavigationcontroller,Interface Builder,Uitabbarcontroller,我有一个带有3个子视图的tabbarcontroller。在IB中,我将3个导航控制器连接到tabbarcontroller,然后连接到每个导航控制器,一个tableviewcontroller。我有要从根tabviewcontroller设置的公共属性 我的问题是。。 1) 这是设置层次结构的正确方法吗?我听说不应该在导航控制器中嵌入tabbarcontroller,所以我为每个需要的tableviewcontroller制作了3个导航控制器 2) [AITBC说明]为空:/ NSArray

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

您无法访问视图控制器的原因是,您甚至还没有将tabBarController链接到某种代码,以便您继续执行一些时髦的操作

要将interface builder的tabBarcontroller链接到您的代码,只需创建您自己的TabBarViewController类,将其称为MyTabBarViewController,然后将该类链接到interface builder文件中的TabBarViewController

完成后,您将能够从新类访问选项卡栏视图控制器

或者,您可以通过在应用程序委托中添加tabBarViewController属性的代码来执行此操作,然后将windows.rootViewcontroller链接到该属性,以在界面生成器中访问您的tabBarViewcontroller,而无需直接链接IB中的任何内容。但您对在应用程序代理中使用任何代码表现出了兴趣,如对话聊天线程中所述


您还可以使用
[self.tabBarController viewControllers]
来代替
self.viewControllers

当用户可以使用选项卡在视图之间切换时,为什么您的应用程序需要导航栏?或者您是从另一个视图控制器输入选项卡栏控制器?@rubbelfizz整个应用程序只是3个选项卡。我想要导航控制器,以便在每个选项卡的顶部有一个漂亮的导航栏。而不仅仅是处于底层。在每个tableviewcontroller上只放置一个导航栏,而不是将它们全部嵌入导航控制器中,是否更好/可能?@ru毯fizz^^^是的。您可以添加
UINavigationBar
。只需为它设置一个插座,你就可以像平常一样设置它的属性。@rubbitzz那么,在后退按钮上使用导航控制器的最主要原因是什么?