导航到不在UITabBar上的ViewControllers

时间:2014-04-23 09:53:27

标签: ios objective-c uitabbarcontroller

我开始使用UITabBarController,这很棒。

问题是我有一些无法从UITabBar访问的视图 (以编程方式呈现模式或我们希望在顶部有一个按钮跳转到它们)

问题是我想保留这些视图中可见的标签栏 根据我的理解,混合presentViewControllerUITabBarController是有问题的。

我该怎么做?我可以隐藏"标签栏元素我可以以编程方式引用吗?

只是为了澄清一个例子:

视图A,B,C,D位于标签栏中 - 通过故事板 - 一切都很好看 我需要从顶部导航中查看E和F视图(请不要建议使用滑动TabBar或多行UITabBar)。
我可以跳转到E和F,但我希望UITabBar仍然可见,以便用户可以从E跳到A。

1 个答案:

答案 0 :(得分:3)

只需为每个标签使用优质的UINavigationController,然后使用[self.navigationController pushViewController:A animated:YES];

设置在代码中的外观如下:

SGTabBarViewController *rootVC = [[SGTabBarViewController alloc] init];

SGFirstTabViewController *firstVC = [[SGFirstTabViewController alloc] init];
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:firstVC];
SGSecondTabViewController *secondVC = [[SGSecondTabViewController alloc] init];
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:secondVC];
SGThirdTabViewController *thirdVC = [[SGThirdTabViewController alloc] init];
UINavigationController *navController3 = [[UINavigationController alloc] initWithRootViewController:thirdVC];
SGForuthTabViewController *fourhtVC = [[SGForuthTabViewController alloc] init];
UINavigationController *navController4 = [[UINavigationController alloc] initWithRootViewController:fourhtVC];

rootVC.viewControllers = @[navController1, navController2, navController3, navController4];

self.window.rootViewController = rootVC;
[self.window makeKeyAndVisible];

如果您想要在每个VC上显示UITabBar,请在其上使用hidesBottomBarWhenPushed = NO;

但是,在模态显示的视图中无法显示UITabBar