self.tabBarItem.title 不起作用?

发布于 2024-07-15 22:15:18 字数 468 浏览 4 评论 0原文

在我的 iPhone 应用程序中,我有一个标签栏。 该选项卡栏包含一个 UINavigationController。 我有:

  • 在 Interface Builder 将选项卡项标题设置为“Create New”
  • 在 UINavigation 控制器中,我有 self.tabBarItem.title = 'Create New';self.title = 'Create New';
  • 在 UIViewController 中推送到控制器上: self.tabBarItem.title = 'Create New'; 但是self.title = 'Blah';

但是,总是会显示推送到导航控制器上的第一个视图控制器的 self.title (废话)。 您将如何设置选项卡栏项目的标题? 谢谢, 艾萨克·沃勒

In my iPhone application, I have a tab bar. This tab bar holds a UINavigationController. I have:

  • In Interface Builder set the tab item title to 'Create New'
  • In the UINavigation controller I have self.tabBarItem.title = 'Create New'; and self.title = 'Create New';
  • In the UIViewController pushed onto the controller: self.tabBarItem.title = 'Create New'; but self.title = 'Blah';.

But, always, the self.title of the first view controller pushed onto the navigation controller is shown (Blah). How would you set the title of the tab bar item? Thanks,
Isaac Waller

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必在意 2024-07-22 22:15:18

我发现如果我使用 self.navigationItem.title = 'Blah'; 而不是 self.title,它会起作用。

I found if I used self.navigationItem.title = 'Blah'; instead of self.title, it would work.

装迷糊 2024-07-22 22:15:18

我刚刚解决了同样的问题。 我将 self.tabBarItem.item 用于我的 tabBarController 的第一个选项卡,这是第一个也是唯一一个加载其 navigationController 的选项卡。 因此,对于选项卡栏中的第一个选项卡,您必须以不同的方式设置标题。 我将尝试说明:

带有 3 个选项卡的选项卡栏UINavigationController 为每个选项卡提供内容)

  1. 选项卡 1
    • 加载 tab1NavController.m(将 self.tabBarItem.item 设置为“1st”)
    • 加载 tab1ViewController.m(将 self.title 设置为“tab1 View”
  2. 选项卡 2
    • 加载 tab2NavController.m(将 self.tabBarItem.item 设置为“2nd”)
    • 加载 tab2ViewController.m(将 self.title 设置为“选项卡视图”
  3. tab 3
    • 加载 tab3NavController.m(将 self.tabBarItem.item 设置为“3rd”)
    • 加载 tab3ViewController.m(将 self.title 设置为“tab3 View”

加载 tab3ViewController.m(将 self.title 设置为 ' tab3 选项卡栏为 3​​ 个选项卡中的每一个加载其所有 viewControllers,选项卡栏中的选项卡按钮具有以下标签:

  1. 'tab1 View'
  2. '2nd'
  3. '3rd'

这是因为第二个和第三个导航直到用户选择这些选项卡后才会加载控制器,在加载 UITabBarController 时加载第一个选项卡,并且由于事件的顺序,它会替换 tabBarItem.title 。 navController 的 rootViewController 的 self.title

解决方案

要解决此问题,您只需使用 self.navigationItem.title 而不是 self.title。为第一个选项卡的 navController 的 rootViewController 执行此操作

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

I just solved the same issue. I was using self.tabBarItem.item for the 1st tab of my tabBarController, which is the first and only one that loads its navigationController. So for the first tab in a tab bar you have to set the title differently. I'll try to illustrate:

tab bar with 3 tabs (a UINavigationController provides content each tab)

  1. tab 1
    • loads tab1NavController.m (sets self.tabBarItem.item to '1st')
    • loads tab1ViewController.m (sets self.title to 'tab1 View'
  2. tab 2
    • loads tab2NavController.m (sets self.tabBarItem.item to '2nd')
    • loads tab2ViewController.m (sets self.title to 'tab View'
  3. tab 3
    • loads tab3NavController.m (sets self.tabBarItem.item to '3rd')
    • loads tab3ViewController.m (sets self.title to 'tab3 View'

When the tab bar loads all of its viewControllers for each of the 3 tabs, the tab buttons in the tab bar have these labels:

  1. 'tab1 View'
  2. '2nd'
  3. '3rd'

This is because the 2nd and 3rd nav controllers aren't loaded until the user selects those tabs. The 1st tab is loaded when the UITabBarController is loaded and due to the order of events it replaces the tabBarItem.title with the navController's rootViewController's self.title.

Solution

To fix this, you simply use self.navigationItem.title instead of self.title. You ONLY have to do this for the 1st tab's navController's rootViewController.

I hope that makes sense. You did solve your own problem, but I wanted you and anyone else to know WHY it works like this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文