5

ストーリーボード プロジェクトでナビゲーションバーのタイトルを 1 つ作成しましたが、次のビューコントローラーに移動すると、戻るボタンに以前のナビゲーションバー (メイン ナビゲーションバー) のタイトルと同じ名前が表示されます。タイトルと戻るボタンの名前を別々に設定できますか?

次のコードを試しましたが、機能しませんか? なぜ?

 self.navigationItem.title=@"Recent Books";
self.navigationItem.backBarButtonItem.title=@"Back";
4

5 に答える 5

19

UINavigationItem クラスリファレンスによると

「このナビゲーション アイテムがスタックの一番上のアイテムのすぐ下にある場合、ナビゲーション コントローラーは、このナビゲーション アイテムからナビゲーション バーの戻るボタンを派生させます。 [...] 戻るボタンのカスタム イメージまたはタイトルを指定する場合代わりに、カスタム バー ボタン項目 (カスタム タイトルまたはイメージを含む) をこのプロパティに割り当てることができます。"

したがって、他のVCをプッシュしている場所から最初のVCでこれを試してください

self.navigationItem.title=@"Recent Books";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Back"
                                   style:UIBarButtonItemStylePlain
                                   target:nil
                                   action:nil];
self.navigationItem.backBarButtonItem=backButton;
于 2013-04-05T08:39:31.320 に答える
6

ビューコントローラー A -> B をプッシュしているとしましょう

viewcontroller A で、このコードをviewDidLoadメソッドに追加してみてください

UIBarButtonItem *btn_Back = [[UIBarButtonItem alloc] initWithTitle:@"Back"
 style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem=btn_Back;

したがって、viewcontroller B に「戻る」ボタンが表示されます。

于 2013-04-05T08:59:45.943 に答える
2

以下はあなたの問題を解決するはずです

-(void)viewDidAppear:(BOOL)animated
{
    self.navigationController.navigationBar.backItem.title = @"back";
}

このObjective-C構文も使用できます

[[self.navigationController.navigationBar backItem] setTitle:@"back"];
于 2013-04-05T08:42:01.160 に答える
1

今まで見つけた最も簡単な方法の1つであるこの方法でそれを行うだけです:

カスタムの戻るボタンを作成し、それをナビゲーション バーの左ボタンの項目プロパティに追加します。

- (void)viewDidLoad
{
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *backBtnImage = [UIImage imageNamed:@"Backnavigation.png"]  ; // Here set the back button image
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside];
backBtn.frame = CGRectMake(0, 0, 24, 24);
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;
self.navigationItem.leftBarButtonItem = backButton;
}


//Handle the Back Button Event
- (void) handleBack:(id)sender
{
    // do your custom handler code here
    [self.navigationController popViewControllerAnimated:YES];
}

また、このようにすると、NavigationBar のタイトルを毎回変更する必要がなくなります。

参照用の戻るボタンは次のとおりです。 ここに画像の説明を入力

于 2013-04-05T09:46:46.140 に答える