web-dev-qa-db-ja.com

iOS >>ナビゲーションアイテム戻るボタンのタイトルは変更されません

プッシュされたVC UINavigationControllerスタック内に設定)の[戻る]ボタンを設定しようとしています。次のコードを使用しましたが、機能しません-以前のVC名前が戻るボタンのタイトルとして表示されます。

-(void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    self.title = @"VC Title";

    UIBarButtonItem* myBackButton = [[UIBarButtonItem alloc]
                                     initWithTitle:@"Back"
                                     style:UIBarButtonItemStyleBordered
                                     target:nil
                                     action:nil];

    self.navigationItem.backBarButtonItem = myBackButton;

}

誰でも?

10
Ohad Regev

親ビューコントローラのviewDidLoadでタイトルを設定してみてください

UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(popView)];

self.navigationItem.leftBarButtonItem = customBarItem;
16
chris13

親ビューコントローラの場合:

- (void)viewWillDisappear:(BOOL)animated
{
    self.title = @"Back";
}

- (void)viewWillAppear:(BOOL)animated
{
    self.title = @"Title of your navigation bar";
}

トリックをします

17
Michal Gumny

Appleのドキュメントから:

ナビゲーションバーの左側にあるバーボタンアイテムを使用すると、ナビゲーションスタックの前のViewControllerに戻ることができます。ナビゲーションコントローラーは、ナビゲーションバーの左側を次のように更新します。

新しいトップレベルのViewControllerにカスタムの左バーボタンアイテムがある場合、そのアイテムが表示されます。カスタムの左バーボタンアイテムを指定するには、ViewControllerのナビゲーションアイテムのleftBarButtonItemプロパティを設定します。

トップレベルのViewControllerにカスタムの左バーボタンアイテムがないが、前のView ControllerのナビゲーションアイテムのbackBarButtonItemプロパティに有効なアイテムがある場合、ナビゲーションバーにはそのアイテムが表示されます。

カスタムバーボタンアイテムがどちらのビューコントローラでも指定されていない場合、デフォルトの戻るボタンが使用され、そのタイトルは前のビューコントローラ(つまり、1レベル下のビューコントローラ)のtitleプロパティの値に設定されます。スタック。 (ナビゲーションスタックにView Controllerが1つしかない場合、戻るボタンは表示されません。)

お役に立てれば。

12
johnyu
self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"Put Any Title"
                                      style:UIBarButtonItemStyleBordered
                                     target:nil
                                     action:nil];
3
iOSTsunami

BackBarButtonItemを前のviewControllerのnavigationItemに設定します。この回答を確認してください https://stackoverflow.com/a/25680043/111277 。詳細な分析については、私のブログ投稿を確認してください iOS Set Navigation Bar Back Button Title

0
situee

ストーリーボードソリューション用。

前のViewControllerのナビゲーション項目をクリックします。次に、右側のペインで属性インスペクターをクリックし、戻るボタン領域に「」などと入力します。これにより、次の(子)ViewControllerで何を表示するかがViewControllerに通知されます。それが役に立てば幸い

コードソリューション用。

UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithTitle:@"back off" style:UIBarButtonItemStyleBordered target:self action:@selector(popView)];
[[self navigationItem] setBackBarButtonItem:customBarItem];
0
smoothumut

もう1つの解決策は、非常に迅速です。

ベースビューコントローラーでこのメソッドをオーバーライドすると、プッシュされたすべてのビューコントローラーに戻るボタンが表示されます。 ([super setTitle:title]を追加しないでください)

- (void)setTitle:(NSString *)title
{
    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 44)];
    [lbl setText:title];
    [lbl setTextColor:[UIColor whiteColor]];
    [self.navigationItem setTitleView:lbl];
}
0
Akshit Zaveri