UINavigationController如何设置标题
我有一个控制器/视图的通用项目列表,可以扩展显示自定义列表。清单和导航工作正常..但我不能改变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”为标题:(
在你的UIViewController
有一个title
属性,它是由NavigationController
显示的那个属性。 所以当把一个新的UIViewController
推到导航栈上时,将UIViewController
的标题设置为合适的。
在你的情况下,它看起来像这样:
[self setTitle:@"WhateverTitle"];
使用
self.title = @"yourTitle";
对于那些寻找Swift解决scheme的人:
class CustomViewController: SuperViewController { override func viewDidLoad() { super.viewDidLoad() self.title = "My Custom Title" } }
title
需要在UIViewController
上设置,而不是在embedded视图控制器的UINavigationController
。
文档: UIViewController
类参考: title
属性
迅速
title = "whateverTitle"
。 这是一个UIViewController
实例属性; 随时调用。
从文档 :
宣言
var title: String? { get set }
讨论
将标题设置为描述视图的可读string。 如果视图控制器具有有效的导航项目或制表符项目,则将值分配给此属性会更新这些对象的标题文本。
我知道它的旧线程,但想到分享这个在UIVIewControler派生类的'init'方法中设置'self.title',这对我工作!