2011-10-04 58 views
15

我正在使用导航控制器的应用程序。我知道如何在视图最初加载时设置标题。我推新视图控制器并设置它的标题。现在问题是当我按下后退按钮时,原始视图控制器的标题不再存在。我试图做...
navigationController标题

- (void)viewWillAppear:(BOOL)animated { 
    self.navigationController.title = @"Some Title"; 
} 

虽然没有设置标题。有谁知道我能做什么?

+0

原始控制器标题不能更改:|除非你故意用它做点什么。张贴一些代码。 – Legolas

+0

所以你不是在你的代码的其他地方把'self.navigationController.title'设置为'nil'或'@“”''? – EmptyStack

+1

我有2个视图控制器...让我们分别说A和B.我在它的viewDidLoad方法中设置了A的标题。然后,我推B并将B的标题设置为viewDidLoad方法中的不同。当我按B上的返回按钮时,B的视图控制器被弹出,并且A显示无标题。 –

回答

36

UINavigationController从当前的UIViewController获取标题的值。

要设置一个标题为视图控制器,只需做到以下几点:

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    self.title = @"Some Title"; 
} 

对于每个视图控制器,包括一个根。

+0

我在storyboard界面构建器上设置了视图控制器的标题。但是,这不起作用! – hasan83

+0

要小心使用这个,如果你有一个NavigationController嵌入TabBarController这将设置标签标题和导航栏标题!改为使用'self.navigationItem setTitle' –

9

请尝试更改导航项目的标题。

[self.navigationItem setTitle:@"Some Title"]; 
0

试着用这种方式设置你的标题。

self.navigationitem.title = @"My Title"; 
3

斯威夫特3

navigationItem.title = "Custom title" 

,或者如果您想自定义标题的细节:

let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 30)) 
titleLabel.textColor = UIColor.red 
titleLabel.text = "Hello" 
titleLabel.textAlignment = .center 
titleLabel.backgroundColor = UIColor.green 
titleLabel.font = UIFont(name: "Baskerville-Bold", size: 20) 
navigationItem.titleView = titleLabel 
相关问题