我刚刚解决了同样的问题。我self.tabBarItem.item
用于我的第一个选项卡tabBarController
,这是第一个也是唯一一个加载它的navigationController
. 因此,对于标签栏中的第一个标签,您必须以不同的方式设置标题。我将尝试说明:
带有 3 个选项卡的选项卡栏(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
为“选项卡视图”
- 标签 3
- 加载 tab3NavController.m(设置
self.tabBarItem.item
为 '3rd')
- 加载 tab3ViewController.m(设置
self.title
为 'tab3 View'
当标签栏viewControllers
为 3 个标签中的每一个加载所有标签时,标签栏中的标签按钮具有以下标签:
- 'tab1 视图'
- '第二'
- '第三'
这是因为在用户选择这些选项卡之前,不会加载第二个和第三个导航控制器。第一个选项卡在加载时UITabBarController
加载,并且由于事件的顺序,它用tabBarItem.title
navController 的 rootViewController替换了self.title
。
解决方案
要解决此问题,您只需使用self.navigationItem.title
而不是self.title
. 您只需为第一个选项卡的 navController 的 rootViewController 执行此操作。
我希望这是有道理的。您确实解决了自己的问题,但我希望您和其他任何人都知道为什么它会这样工作。