【问题标题】:UINavigationController pushing UITabBarController only displays one tabUINavigationController推UITabBarController只显示一个tab
【发布时间】:2012-01-19 16:19:05
【问题描述】:

我有一个在 IB 中创建了 UITabBarController 的应用程序。该 tbc 加载了 3 个视图,这些视图到目前为止都可以正常工作。

我决定插入 UINavController 作为起始 VC,并让 UITableViewController 在单元格中显示 4 个菜单项。这 4 个项目中的每一个本质上都会将 UITabBarController put pass 加载到不同的 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];

事实证明,当我运行它时,导航控制器会推动选项卡控制器,但只显示第一个选项卡。这是一张照片。

【问题讨论】:

    标签: ios uinavigationcontroller uitabbarcontroller


    【解决方案1】:

    您永远不应该从UINavigationController 推送UITabBarController。苹果明确表示:

    使用标签栏控制器的应用也可以在一个或多个标签中使用导航控制器。当在同一个用户界面中组合这两种视图控制器时,标签栏控制器总是充当导航控制器的包装器。`

    这实质上意味着标签栏应该是所有其他被调用的视图控制器的父级。不是反过来。您或许应该改变展示应用的方式。

    更多信息here

    【讨论】:

    • 检查 Apple New App,他们似乎将 UITabBarController 推入 UINavigationController
    • 你能更新链接吗?显然它不再有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 2014-12-03
    • 1970-01-01
    相关资源
    最近更新 更多