2012-04-10 89 views
3

我正在使用push segue在我的Storyboard中顯示新的ViewController。默認情況下,推送導航控制器上的後欄項目具有「前」(下層)控制器的標題。用推Segue更改項目標題Segue

爲了改變回欄項目的標題,例如「後退」我實現了在視圖控制器下面這被推開:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.navigationItem.backBarButtonItem.title = @"Back"; 
} 

但是這並沒有改變的標題後欄項目。我也試着用相同的結果使用新創建的UIBarButtonItem:後面的條目不會改變。

另一種方法是在執行segue的控制器中設置backbar項目,如prepareForSegue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

    if ([[segue identifier] isEqualToString:@"pushViewController"]) { 
     UIViewController *viewController = [segue destinationViewController]; 
     viewController.navigationItem.backBarButtonItem.title = @"Back"; 
    } 
} 

結果相同:後欄項目標題不變。那麼我怎樣才能輕鬆地更改後欄項目的標題?提前致謝!

+0

是你能解決這個問題?謝謝 – SergioM 2013-03-20 05:44:32

回答

2

在源視圖控制器中設置navigationItem.backBarButtonItem.title,而不是目標視圖控制器。

3

更具體的比馬可的回答了一下,你要找的東西是這樣的:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{   
    self.title = @"Back"; 
    // ... 
} 

注意,這是恕我直言很煩人的,因爲你可能最終不得不有一個整體的狀態機器以「self.title」應該在當前時刻爲中心,而不是讓故事板中的每個場景都知道後退按鈕應該說什麼。

0

添加回欄項目的標題爲 「Storyboard-> VC-> NavigationItem」 例如爲 「後退」, 當準備SEGUE,設置:

self.navigationItem.backBarButtonItem.title = @"Need a Title :)";