ios - UINavigationController 推送 UITabBarController 只显示一个选项卡

标签 ios uinavigationcontroller uitabbarcontroller

我有一个应用程序,它有一个在 IB 中创建的 UITabBarController。该 tbc 加载 3 个 View ,到目前为止工作正常。

我决定插入一个 UINavController 作为起始 VC,并让一个 UITableViewController 在单元格中显示 4 个菜单项。这 4 个项目中的每一个实际上都会加载 UITabBarController 并传入不同的 xml 文件进行处理,以便在这 3 个选项卡中显示数据。

我基本上是在 applicationDidFinishLoading 的末尾这样做的:

MainMenu *rootViewController = [[MainMenu alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.window.rootViewController = navController;
[window makeKeyAndVisible];
return YES;

然后我将 MainMenu 创建为 rootViewController 子类 UITableViewController 并添加了一个硬编码数组,用于显示我想要的 4 个项目。我让 didSelectRowAtIndexPath 运行这段代码:

tabBarController = [[UITabBarController alloc] init];
[self.navigationController pushViewController:tabBarController animated:YES];
[tabBarController release];

事实证明,当我运行它时,navcontroller 会推送选项卡 Controller ,但只显示第一个选项卡。这是一张照片。

enter image description here

最佳答案

你不应该从 UINavigationController 中推送 UITabBarController。 Apple 明确表示:

使用标签栏 Controller 的应用也可以在一个或多个标签中使用导航 Controller 。在同一用户界面中组合这两种类型的 View Controller 时,标签栏 Controller 始终充当导航 Controller 的包装器。`

这实际上意味着标签栏应该是所有其他被调用的 View Controller 的父级。反之则不然。您可能应该改变展示应用的方式。

更多信息 here .

关于ios - UINavigationController 推送 UITabBarController 只显示一个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8929462/

相关文章:

ios - 将 UIWebView 内容保存为 A4 大小的 PDF

ios - 将 touchupinside 添加到以编程方式创建的按钮,并将 NSDate 提交到文本字段

ios - UIPageViewController NSInternalInconsistencyException

ios - 返回上一个 VC 后导航栏会发生变化

iphone - EXC_BAD_ACCESS 当 popViewControllerAnimated 在基于导航的应用程序中时

ios - TableViewController 导致 TabBar 项目标题更改为导航栏标题

ios - 使用自定义标签栏图像和没有标签栏标题的插图时如何调整标签栏角标(Badge)位置?

ios - 在钛中如何截取完整的 ScrollView ?

swift - 如何从第一个选项卡到达第二个选项卡导航堆栈?

ios - UITabBarController 的项目未显示