【问题标题】:Changing Nav Bar title programmatically以编程方式更改导航栏标题
【发布时间】:2012-06-05 09:50:55
【问题描述】:

我正在尝试以编程方式更改导航栏的标题,但我使用的代码不起作用。

self.navigationController.navigationBar.tintColor = [UIColor redColor];
self.navigationController.navigationItem.title=@"Hello";

我可以设法更改栏的颜色,但不能更改文本。

【问题讨论】:

    标签: ios xcode uinavigationcontroller


    【解决方案1】:
    self.navigationController.navigationBar.topItem.title = @"YourTitle";
    

    【讨论】:

    • 这段代码的工作方式与 Mudit 完全相同,但更短。只需将它放在 viewWillAppear 中,它就完美了
    • 我有导航栏和标签栏,当我尝试使用 self.navigationItem.title 或 self.navigationcontroller.title 或 self.title 以编程方式编辑导航标题时,它正在更改导航栏标题中的值和标签栏上的第一个标签。此行仅更改导航栏。仅供有相同问题的人将来参考:)
    【解决方案2】:

    self.navigationItem.title = @"Title";

    【讨论】:

      【解决方案3】:

      首先通过查看当前控制器在导航栈上的索引

       NSLog(@"%@", self.navigationController.viewControllers );
      

      找到当前 ViewController 的索引后,让我们说 1。

      UINavigationController *navCon  = (UINavigationController*) [self.navigationController.viewControllers objectAtIndex:1];
          navCon.navigationItem.title = @"Hello";
      

      【讨论】:

      • 谢谢,它成功地设置了导航栏的标题,但我希望它为每个选项卡设置不同的标题,而不是只为一页设置标题。我已经尝试在两个不同的选项卡上使用上述修复,但是无论我最后单击哪个选项卡,都会将导航栏标题永久更改为该选项卡。所以即使我加载我的另一个标签,标题也不会改变。知道如何解决这个问题吗?
      • 在该控制器的 viewWillAppear 中,您可以应用相同的过程。
      • 我不是天才,实际上我在之前的项目中遇到过同样的问题,那就是我有解决方案...
      • 我为此得到空值
      【解决方案4】:

      您现在可以在 XCode

      [self setTitle:@"title"]

      self.title=@"title"

      在其 viewController 中使用内置方法 setTitle

      【讨论】:

      • ahaththada :D maru ahh
      【解决方案5】:

      对于 swift 2.2

      navigationController?.navigationBar.topItem?.title = "Superman title"
      

      【讨论】:

        【解决方案6】:

        试试这个:

        [navigationController setTitle:@"Title"];
        

        【讨论】:

        • 不是一个很好的例子,因为navigationController 可能是一个没有在这里共享的实例变量。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多