UINavigationController如何设置标题
Posted
技术标签:
【中文标题】UINavigationController如何设置标题【英文标题】:UINavigationController how to set title 【发布时间】:2010-10-18 12:15:11 【问题描述】:我有一个用于通用项目列表的控制器/视图,可以扩展以显示自定义列表。列表和导航工作正常。但我无法更改 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"];
导航栏仍然有“项目”作为标题:(
【问题讨论】:
你解决了这个问题,你能告诉我应该怎么做吗? “接受”(@willcodejavaforfood)响应为我解决了这个问题。 【参考方案1】:在您的UIViewController
中有一个title
属性,NavigationController
将显示该属性。因此,当将新的 UIViewController
推送到导航堆栈时,请将 UIViewController
的标题设置为适当的名称。
在你的情况下,它看起来会是:
[self setTitle:@"WhateverTitle"];
【讨论】:
第一个视图没有推送:[self.view addSubview: navigationController.view];我也试过:self.title = @"AAAA"; [self.view addSubview: navigationController.view];并且不起作用 在推送的视图中(当用户选择一个项目时),标题被正确更改 我注意到您没有为导航控制器设置 rootViewController。 navigationController 中的第一个视图控制器称为 rootViewController。您可以使用 self.title = @"xxx" 设置其标题。 我的导航栏没有“rootViewController”:? self.title = @"Title";正在工作【参考方案2】:对于那些寻找 Swift 解决方案的人:
class CustomViewController: SuperViewController
override func viewDidLoad()
super.viewDidLoad()
self.title = "My Custom Title"
title
需要在 UIViewController
上设置,而不是在嵌入视图控制器的 UINavigationController
上。
文档:UIViewController
Class Reference: title
Property
【讨论】:
【参考方案3】:使用
self.title = @"yourTitle";
【讨论】:
我现在有:NSLog(@"set title: %@", title); self.title = 标题; self.navigationItem.title = 标题; self.navigationController.title = 标题; // 这些都不起作用:/ 在 - (void)viewWillAppear:(BOOL)动画方法中设置标题【参考方案4】:斯威夫特
title = "whateverTitle"
。这是一个UIViewController
实例属性;随时调用。
来自documentation:
声明
var title: String? get set
讨论 将标题设置为描述视图的人类可读字符串。如果视图控制器具有有效的导航项或选项卡栏项,则为该属性分配一个值会更新这些对象的标题文本。
【讨论】:
【参考方案5】:我知道它的旧线程,但想分享这个 在 UIVIewControler 派生类的“init”方法中设置“self.title”, 这对我有用!
【讨论】:
以上是关于UINavigationController如何设置标题的主要内容,如果未能解决你的问题,请参考以下文章
iOS:如何在现有 UINavigationController 中打开另一个 UINavigationController?
如何扩展 UIView 过去包含 UINavigationController