2012-04-10 8 views
3

私はストーリーボードに新しいViewControllerを表示するためにプッシュセグを使用しています。デフォルトでは、プッシュされたナビゲーションコントローラのバックバー項目には、「前の」(下にある)コントローラのタイトルがあります。 プッシュでアイテムタイトルを変更するSegue

- (void)viewDidLoad { 
    [super viewDidLoad]; 

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

しかし、これはのタイトルを変更しません:

例えば、に戻ってバー項目のタイトルを変更するためには、「戻る」私がプッシュされますのViewControllerに次のように実装しましたバックバー項目。また、同じ結果を持つ新しく作成されたUIBarButtonItemを使用しようとしました。バックバーの項目は変更されません。

もう1つのアプローチは、セグが実行されるコントローラでprepareForSegueのようなバックバー項目を設定することでした。

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

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

バック・バー項目のタイトルは変更されません。だから私は簡単にバックバーの項目のタイトルを変更することはできますか?前もって感謝します!

+0

は、あなたがこの問題を解決できましたか?ありがとう – SergioM

答えて

2

宛先ビューコントローラではなく、ソースビューコントローラ内でnavigationItem.backBarButtonItem.titleを設定します。あなたが潜在的に全体の状態を持つことに終わる可能性があるため、これは、私見非常に迷惑であることを

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

注:あなたが探していることはこれで、もう少し具体的なマルコの答えよりも長く

3

ストーリーボード内の各シーンに戻るボタンが何を言わなければならないかを知るのではなく、現在の瞬間に「self.title」が何をすべきかを中心にしています。

0

は設定、「戻る」、 として「Storyboard-> VC-> NavigationItem」の例に戻ってバー項目のタイトルを追加したときにセグエを準備:

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