2013-07-01 11 views
13

私のアプリケーションではストーリーボードを使用していますが、ViewControllerクラスのtitleプロパティを設定すると、その文字列はSecondViewControllerをプッシュするときに戻るボタンのテキストとして表示されます私はこれを変更することはできますか?、私は戻るボタンの別のタイトルを入れたいです。iosのバックバーボタンアイテムのタイトルを設定する

私はこれを使用しているが、それは動作しません:

UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] 
            initWithTitle:@"Back" 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:nil]; 
    [self.navigationItem setBackBarButtonItem: btnBack]; 

私は

答えて

48

のObjective-C、これを試してみてください:

UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] 
          initWithTitle:@"Done" 
          style:UIBarButtonItemStyleBordered 
          target:self 
          action:nil]; 
self.navigationController.navigationBar.topItem.backBarButtonItem=btnBack; 

スウィフト:

var btn = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: "backBtnClicked") 

self.navigationController?.navigationBar.topItem?.backBarButtonItem=btn 
+0

は、なぜこの作品が、試したコードではありませんが行う非常に – CarinaM

+0

をありがとうございましたか! – Nick

+1

@Nick self.navigationItemの設定は機能しません。 backBarButtonItemを前のviewController navigationItemに設定する必要があります。この答えは、 'navigationBar.topItem'がまだ' previousViewController.navigationItem'を指しているので、最初の 'viewWillAppear'でのみ動作します。 1回目のviewWillAppearの後、 'backItem'に設定する必要があります。 [私の答え](http://stackoverflow.com/a/25680043/111277)をチェックしてください。 – situee

0

は、あなたが2番目のビューコントローラをプッシュする最初のビューコントローラのタイトルを変更してみてください、と点画を設定して助けてください私はポップ時に古いものに。

-2

これを試してみてください:

UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] 
             initWithTitle:@"Back" 
             style:UIBarButtonItemStyleBordered 
             target:self 
             action:@selector(backButtonClicked:)]; 
     [self.navigationItem setLeftBarButtonItem: btnBack]; 


    -(void)backButtonClicked:(UIBarButtonItem*)sender 
    { 
     //do ur stuff 
    } 
12

あなたはストーリーボードを使用するときは、テキストを変更することができます左のボタンのアイテムaka bコードなしのackボタン。ストーリーボード内には、明らかにUINavigationControllerが必要なので、ビューをプッシュ/ポップすることができます。

  1. 右側のインスペクタビューに戻るボタンのオプションにテキストを入力し、ソース・ビュー・コントローラ用のナビゲーション・アイテム・オブジェクトを選択します。

このビューからビューをプッシュすると、このタイトルセットが使用されます。前回のViewControllerのnavigationItemにbackBarButtonItemを設定

enter image description here

+0

ありがとう!これは本当に私を助けました! – Subby

1

。 topItemを設定するのは、最初のviewWillAppearでのみ機能します。詳細は、この記事をチェックしてください:iOS Set Navigation Bar Back Button Title

NSArray *viewControllerArray = [self.navigationController viewControllers]; 
// get index of the previous ViewContoller 
long previousIndex = [viewControllerArray indexOfObject:self] - 1; 
if (previousIndex >= 0) { 
    UIViewController *previous = [viewControllerArray objectAtIndex:previousIndex]; 
    previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] 
                initWithTitle:backButtonTitle 
                style:UIBarButtonItemStylePlain 
                target:self 
                action:nil]; 
} 
関連する問題