我有一个通用的项目列表的Controller / View,可以扩展以显示自定义列表。列表和导航工作正常..但我无法更改UINavigationController的标题。 在通用控制器中:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view addSubview: navigationController.view];
}
- (void)setNavigationTitle: (NSString *)title
{
NSLog(@"set title: %@", title); // this works
self.navigationController.title = title; // Nothing works here
}
然后,扩展类会...
- (void)viewDidLoad
{
[super viewDidLoad];
[self setNavigationTitle: @"Custom list"];
}
navigationBar仍然以“Item”作为标题:(
答案 0 :(得分:57)
在UIViewController
中有一个title
属性,NavigationController
将显示该属性。因此,当将新UIViewController
推送到导航堆栈时,将UIViewController
的标题设置为适当的标题。
在您的情况下,它看起来像是:
[self setTitle:@"WhateverTitle"];
答案 1 :(得分:7)
对于那些寻找Swift解决方案的人:
class CustomViewController: SuperViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "My Custom Title"
}
}
title
需要在UIViewController
上设置,而不是在嵌入视图控制器的UINavigationController
上设置。
答案 2 :(得分:5)
使用
self.title = @"yourTitle";
答案 3 :(得分:4)
title = "whateverTitle"
。它是UIViewController
实例属性;随时调用。
<强>声明强>
var title: String? { get set }
<强>讨论强>
将标题设置为描述视图的人类可读字符串。如果视图控制器具有有效的导航项或制表符项,则为此属性指定值会更新这些对象的标题文本。
答案 4 :(得分:0)
我知道它的旧线程,但想到分享这个 在UIVIewControler派生类中的'init'方法中设置'self.title', 这对我有用!!