一起使用 UITabBarController 和 UINavigationController
Posted
技术标签:
【中文标题】一起使用 UITabBarController 和 UINavigationController【英文标题】:Using a UITabBarController and a UINavigationController together 【发布时间】:2015-02-14 05:42:44 【问题描述】:在标签栏视图之后单击视图时,使用 2 个标签的最佳做法或好方法是什么?
我是否为每个选项卡创建一个 UINavigationController?
标签栏是这样创建的:
// Create the tab bar text and images
AViewController *viewA = [[AViewController alloc] init];
BViewController *viewB = [[BViewController alloc] init];
UITabBarItem *tabA = [[UITabBarItem alloc] initWithTitle:@"A" image:[UIImage imageNamed:@"a.png"] tag:1];
UITabBarItem *tabB = [[UITabBarItem alloc] initWithTitle:@"B" image:[UIImage imageNamed:@"b.png"] tag:2]
viewA.tabBarItem = tabA;
viewB.tabBarItem = tabB;
NSArray* controllers = [NSArray arrayWithObjects:viewA, viewB, nil];
self.viewControllers = controllers;
【问题讨论】:
是的,每个标签中都有单独的UINavigationController
。每个选项卡都位于独立的视图控制器堆栈中。它们不应共享任何视图控制器层次结构。通常我会拖出一个“标签栏控制器”和两个“导航控制器”并将两个导航控制器连接为标签栏控制器的子视图控制器。
【参考方案1】:
对于导航,您需要像这样为每个创建 UINavigationController
更新:立即尝试
AViewController *viewA = [[AViewController alloc] init];
BViewController *viewB = [[BViewController alloc] init];
UINavigationController *navA = [[UINavigationController alloc]initWithRootViewController:viewA];
UINavigationController *navB = [[UINavigationController alloc]initWithRootViewController:viewA];
UITabBarItem *tabA = [[UITabBarItem alloc] initWithTitle:@"A" image:[UIImage imageNamed:@"a.png"] tag:1];
UITabBarItem *tabB = [[UITabBarItem alloc] initWithTitle:@"B" image:[UIImage imageNamed:@"b.png"] tag:2]
tabA.tabBarItem = tabA;
tabB.tabBarItem = tabB;
NSArray* controllers = [NSArray arrayWithObjects:navA, navB, nil];
self.viewControllers = controllers;
试试这个
【讨论】:
如果标签栏不在 appDelegate 中怎么办? 没关系,但是这里需要为下一个控制器创建uitabbarcontroller以上是关于一起使用 UITabBarController 和 UINavigationController的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 iOS 中将 UITabBarController 与 UITableViewController 一起使用时出现异常
将 UITabBarController 与内部 UINavigationControllers 一起使用时如何共享 ManagedObjectContext
让 UITabBarController 与核心数据一起工作
如何在没有 UITabBarController 的情况下使用 UITabBar
Obj-C, UINavigationControllers inside a UITabbarController,简单解释一下?