以编程方式更改导航栏标题
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
可能是一个没有在这里共享的实例变量。以上是关于以编程方式更改导航栏标题的主要内容,如果未能解决你的问题,请参考以下文章