以编程方式更改导航栏标题

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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 可能是一个没有在这里共享的实例变量。

以上是关于以编程方式更改导航栏标题的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式快速更改导航栏的高度

以编程方式更改导航栏标题:添加符号并更改其颜色

如何以编程方式设置导航栏的标题?

以编程方式将按钮添加到导航栏

Flutter 导航栏 - 从另一个页面更改选项卡

XCode12 导航栏