【问题标题】:UITabBarController/UINavigationController missing titleUITabBarController/UINavigationController 缺少标题
【发布时间】:2010-11-23 03:42:25
【问题描述】:

我有一个 UINavigationController 和 UITabBarController 同时可见。标签栏按钮和导航栏都从当前活动视图的标题中获取文本。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"View Title";

但我想要与众不同。事实上,我希望导航控制器标题保持不变,无论显示哪个视图。

有什么想法吗?

非常感谢。

【问题讨论】:

    标签: button navigation title tabbar


    【解决方案1】:

    您必须像上面那样在其他视图控制器中手动分配标题名称。

    如果您的视图层次结构的深度超过两层,请小心,因为后退按钮对用户来说会有些奇怪(除非您覆盖它)。事实上,如果每个视图都有相同的标题,那么用户可能会觉得很奇怪,句号...

    【讨论】:

    • Shaggy,感谢您的评论。对于我正在调用的每个 UIViewController:viewDidLoad:self.title = myObject.name; self.tabBarItem.title = @"";但是,虽然这正确命名了 tabBarItems,但 NavigationController 标题为空白。很奇怪。我的需要是标签是同一对象上的不同视图。
    • 来自developer.apple.com/IPhone/library/documentation/UIKit/… 的文档:“如果您想显示与视图控制器关联的标题不同的标题,请设置视图控制器导航项的标题属性。”
    • 感谢您的提示。我已经在 viewDidLoad 中尝试过(... self.title = @"Core Data"; self.navigationItem.title = dataObject.name; ...),但这似乎也不起作用。也不设置 NavigationItem 的 titleView。
    • 我一执行 self.navigationItem.title=dataObject.name 它就被创建了。
    • 那是不可能的。如果它为零,我怀疑您的视图控制器没有正确推送到 UINavigationController 的堆栈中。
    【解决方案2】:
       -(void)viewDidLoad{
     [self setTitle:@"Custom Title goes here"];
    }
    

    这对我有用。

    【讨论】:

      【解决方案3】:

      试试这个

      UITabBarItem *tItem = [self tabBarItem];
      [tItem setTitle:@"Title for tabbar"];
      

      当你设置导航标题时它不会改变你的标签栏标题

      [self setTitle:@"Title for navBar"];
      

      但我发现有时它会同时更改 tabBar 和 naviBar

      然后我再次在 -(void)viewWillAppear 中插入 TabBar 设置标题代码以防止 这样的事情

      谢谢

      【讨论】:

      • 如果您使用的是导航控制器,请执行 [self.navigationController tabBarItem]
      【解决方案4】:

      根据KwangBok Lee,我已经测试过,最好的答案是:

      self.title = @"my settings";//changes both tabbars and navigationbars title
      
      self.tabBarItem.title = @"settings";//only changes tabbars title
      

      【讨论】:

        【解决方案5】:

        我发现的是……使用

        self.tabBarController.title = @"navTitle";
        

        更改导航栏标题,同时

        self.title = @"tabTitle";
        

        更改标签栏项目的标题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-14
          • 1970-01-01
          • 2014-12-03
          • 2019-03-03
          • 1970-01-01
          相关资源
          最近更新 更多