2011-10-04 28 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 
相關問題