NavigationConroller 中的 TabBarController

Posted

技术标签:

【中文标题】NavigationConroller 中的 TabBarController【英文标题】:TabBarController in a NavigationConroller 【发布时间】:2011-05-12 11:40:55 【问题描述】:

我在 UINavigationController 中有一个 UITabBarController,我知道 UINavigationController 的 ios 文档说明如下:

rootViewController

The view controller that resides at the bottom of the navigation stack. This object cannot be an instance of the UITabBarController class.

这是否意味着如果导航堆栈上已经有 UIViewControllers,那么推送一个 UITabBarController 就可以了,一旦它不是根项?

我现在有这个,除了当我弹出 UITabBarController,在任何 TabBarItems ViewController 中都没有调用 dealloc 或 viewDidUnload 时,一切似乎都很好,我需要做一些类似的事情来让 viewWillAppear 工作吗?

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController   
[viewController viewWillAppear:NO];

谢谢

【问题讨论】:

【参考方案1】:

我不确定在 UINavigationController 中使用 UITabBarController 是否有效。

我通常会反其道而行之

companyNavController = [[[UINavigationController alloc] initWithRootViewController:companyViewController] autorelease];
companyNavController.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1];

[tabBarController setViewControllers:[NSArray arrayWithObjects:phoneBookNavController, companyNavController, faveNavController, settingsNavController, nil]];

如果您想隐藏 App 的 TabBar 部分,您可以随时尝试 hidesBottomBarWhenPushed 来管理它。

HTH

【讨论】:

以上是关于NavigationConroller 中的 TabBarController的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 清除背景色

sql 从源表中删除行时,删除$ TA表中的相应行

三极管规格书中的温度TA和TC分别代表啥温度啊??

NTN TA

十季剧集数据分析,《老友记》中的C位原来是TA!

LED驱动上Ta,Tc各表示啥温度