在我的iPhone应用程序中,我有一个标签栏 . 此选项卡栏包含UINavigationController . 我有:
-
在Interface Builder中将标签项 Headers 设置为'Create New'
-
在UINavigation控制器中我有
self.tabBarItem.title = 'Create New';
和self.title = 'Create New';
-
在推入控制器的UIViewController中:self.tabBarItem.title = 'Create New';但
self.title = 'Blah';
.
但是,总是会显示推入导航控制器的第一个视图控制器的self.title(Blah) . 你如何设置标签栏项目的 Headers ?谢谢,艾萨克沃勒
2 回答
我发现如果我使用
self.navigationItem.title = 'Blah';
而不是self.title
,它会起作用 .我刚解决了同样的问题 . 我使用
self.tabBarItem.item
作为我的tabBarController
的第一个标签,这是第一个也是唯一一个加载它navigationController
的标签 . 因此,对于标签栏中的第一个标签,您必须以不同方式设置 Headers . 我试着说明一下:tab bar with 3 tabs (a
UINavigationController
为每个标签提供内容)标签1
加载tab1NavController.m(将
self.tabBarItem.item
设置为'1st')加载tab1ViewController.m(将
self.title
设置为'tab1 View'标签2
加载tab2NavController.m(将
self.tabBarItem.item
设置为'2nd')加载tab2ViewController.m(将
self.title
设置为'tab View'标签3
加载tab3NavController.m(将
self.tabBarItem.item
设置为'3rd')加载tab3ViewController.m(将
self.title
设置为'tab3 View'当标签栏为3个选项卡中的每个选项卡加载其所有
viewControllers
时,选项卡栏中的选项卡按钮具有以下标签:'tab1 View'
'2nd'
'3rd'
这是因为在用户选择这些选项卡之前,不会加载第2和第3个导航控制器 . 加载
UITabBarController
时会加载第一个选项卡,由于事件的顺序,它会使用navController 's rootViewController' sself.title
替换tabBarItem.title
.解决方案
要解决此问题,您只需使用
self.navigationItem.title
而不是self.title
. 你只需要为第一个选项卡_2802245的rootViewController执行此操作 .我希望这是有道理的 . 你确实解决了自己的问题,但我希望你和其他任何人都知道为什么它会像这样工作 .