我读到在 iOS 应用程序中拥有这样的结构是很糟糕的。但是如果一个应用程序有很多UINavigationController
s 和UITabBarController
s 怎么办。但是一UINavigationBar
和一UITabBar
总是只显示?其他UINavigationBar
s 和UITabBar
s 被隐藏。
已编辑
例如,在基于导航的应用程序中,我称此代码为:
- (IBAction)openTabsController:(id)sender {
tabOneController *tabOneViewContr = [[[tabOneController alloc] initWithNibName:@"tabOneController" bundle:nil] autorelease];
UINavigationController *tabOneNavContr = [[UINavigationController alloc] initWithRootViewController:tabOneViewContr];
tabTwoController *tabTwoViewContr = [[[tabTwoController alloc] initWithNibName:@"tabTwoController" bundle:nil] autorelease];
UINavigationController *tabTwoNavContr = [[UINavigationController alloc] initWithRootViewController:tabTwoViewContr];
UITabBarController *tabContr = [[[UITabBarController alloc] init] autorelease];
tabContr.viewControllers = [NSArray arrayWithObjects:tabOneNavContr,tabTwoNavContr, nil];
sel.navigationController.navigationBar.hidden = YES;
[self.navigationController pushViewController:tabContr animated:YES];
}
调用此方法后,我有两个UINavigationController
s 和一个UITabBarController
。同时我在屏幕上有一个UINavigationBar
和一个。UITabBar
已编辑
近似方案。
从一开始,我们就有一个 UINavigationController 允许在视图(圆圈)之间导航。然后在按下 UITabBar 后出现并允许在视图之间切换。一个带有两个小矩形的矩形是一个带有 2 个 UITabBarItem 的 UITabBar 的视图。当我们按下任何 UITabBarItem 时,会出现另一个 UIView。在这个 UIView 中,我们可以按下某个按钮,该按钮使用另一个 UITabBar 调用另一个视图。当前的 UITabBar 如果没有被另一个 UITabBar 隐藏,则在推送后可见。现在更清楚了吗?上面的代码几乎可以完美运行(除了一些动画,不包括 Apple 的限制)