我在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];
}


谢谢

最佳答案

我不确定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]];


如果您想隐藏应用程序的TabBar部分,则可以始终尝试使用hidesBottomBarWhenPushed来管理它。

高温超导

关于ios - NavigationController中的TabBarController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5977388/

10-09 13:24