self.tabBarItem.title 不起作用?
-
23-08-2019 - |
题
在我的 iPhone 应用程序中,我有一个标签栏。该选项卡栏包含一个 UINavigationController。我有:
- 在 Interface Builder 中,将选项卡项标题设置为“新建”
- 在 UINavigation 控制器中我有
self.tabBarItem.title = 'Create New';
和self.title = 'Create New';
- 在 UIViewController 中推送到控制器上:self.tabBarItem.title = '新建';但
self.title = 'Blah';
.
但是,总是会显示推送到导航控制器上的第一个视图控制器的 self.title (废话)。您将如何设置选项卡栏项目的标题?谢谢,艾萨克·沃勒
解决方案
我发现如果我用过 self.navigationItem.title = 'Blah';
代替 self.title
, ,它会起作用。
其他提示
我刚刚解决了同样的问题。我正在使用 self.tabBarItem.item
对于我的第一个选项卡 tabBarController
, ,这是第一个也是唯一一个加载其 navigationController
. 。因此,对于选项卡栏中的第一个选项卡,您必须以不同的方式设置标题。我将尝试说明:
带有 3 个选项卡的选项卡栏 (A UINavigationController
每个选项卡提供内容)
- 选项卡 1
- 加载 tab1NavController.m (设置
self.tabBarItem.item
到“第一”) - 加载 tab1ViewController.m (设置
self.title
到“tab1 视图”
- 加载 tab1NavController.m (设置
- 选项卡 2
- 加载 tab2NavController.m (设置
self.tabBarItem.item
到“第二”) - 加载 tab2ViewController.m (设置
self.title
到“选项卡视图”
- 加载 tab2NavController.m (设置
- 选项卡 3
- 加载 tab3NavController.m (设置
self.tabBarItem.item
到“第三”) - 加载 tab3ViewController.m (设置
self.title
到“tab3视图”
- 加载 tab3NavController.m (设置
当标签栏加载其所有内容时 viewControllers
对于 3 个选项卡中的每一个,选项卡栏中的选项卡按钮都有以下标签:
- 'tab1 视图'
- '第二'
- ‘第三’
这是因为在用户选择这些选项卡之前,不会加载第二个和第三个导航控制器。第一个选项卡加载时 UITabBarController
已加载,并且由于事件的顺序,它取代了 tabBarItem.title
与 navController 的 rootViewController 的 self.title
.
解决方案
要解决这个问题,您只需使用 self.navigationItem.title
代替 self.title
. 。您只需对第一个选项卡的 navController 的 rootViewController 执行此操作。
我希望这是有道理的。你确实解决了你自己的问题,但我希望你和其他人知道为什么它会这样工作。