带导航栏的 TabBarController
Posted
技术标签:
【中文标题】带导航栏的 TabBarController【英文标题】:TabBarController with NavigationBar 【发布时间】:2012-01-12 11:34:20 【问题描述】:我正在编写一个在底部使用 UITabBarController 的应用程序。
层次结构
- 第 1 页 - - 子页面 1 - - 子页面 2 - - 子页面 3 - 第2页 - 第 3 页第 1 页包含一个包含多个项目的网格,选中后将显示所选子页面。 在子页面上,我将 TabBarController 的选项卡替换为所有子页面,并希望在导航栏中显示反向链接。
我以编程方式创建 tabBar。 目前我用 tabBarController 作为 rootViewController 来初始化 navigationController。 这似乎可行,但我无法更改 NavigationBar 上的任何内容,设置标题无效,按钮不出现。
我做错了什么? 还是有更好的方法来实现我想要的?
我将 ios5 与 ARC 结合(仅限 iPad)
【问题讨论】:
【参考方案1】:您通过设置子导航控制器的标题来设置父导航控制器的标题。您需要设置标签栏控制器的标题:
myTabBarController.title = @"Page 1";
您还可以在子视图中设置导航栏的按钮,因为导航栏的内容取决于当前可见视图:
UIBarButtonItem *myItem = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStylePlain target:self action:@selector(myBackAction:)];
myTabBarController.navigationItem.leftBarButtonItem = myItem;
请记住,在点击项目后更改标签栏的内容被认为是糟糕的用户体验。可能还有其他更好的方法可以达到相同的效果。
【讨论】:
谢谢,它有效。我在内容区域的点击中更改了 tabBar,而不是 tabBar 本身。以上是关于带导航栏的 TabBarController的主要内容,如果未能解决你的问题,请参考以下文章