在我的 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. 选项卡 1
    • 加载 tab1NavController.m (设置 self.tabBarItem.item 到“第一”)
    • 加载 tab1ViewController.m (设置 self.title 到“tab1 视图”
  2. 选项卡 2
    • 加载 tab2NavController.m (设置 self.tabBarItem.item 到“第二”)
    • 加载 tab2ViewController.m (设置 self.title 到“选项卡视图”
  3. 选项卡 3
    • 加载 tab3NavController.m (设置 self.tabBarItem.item 到“第三”)
    • 加载 tab3ViewController.m (设置 self.title 到“tab3视图”

当标签栏加载其所有内容时 viewControllers 对于 3 个选项卡中的每一个,选项卡栏中的选项卡按钮都有以下标签:

  1. 'tab1 视图'
  2. '第二'
  3. ‘第三’

这是因为在用户选择这些选项卡之前,不会加载第二个和第三个导航控制器。第一个选项卡加载时 UITabBarController 已加载,并且由于事件的顺序,它取代了 tabBarItem.title 与 navController 的 rootViewController 的 self.title.

解决方案

要解决这个问题,您只需使用 self.navigationItem.title 代替 self.title. 。您只需对第一个选项卡的 navController 的 rootViewController 执行此操作。

我希望这是有道理的。你确实解决了你自己的问题,但我希望你和其他人知道为什么它会这样工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top