プッシュされた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;
}
誰でも?
親ビューコントローラのviewDidLoad
でタイトルを設定してみてください
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(popView)];
self.navigationItem.leftBarButtonItem = customBarItem;
親ビューコントローラの場合:
- (void)viewWillDisappear:(BOOL)animated
{
self.title = @"Back";
}
- (void)viewWillAppear:(BOOL)animated
{
self.title = @"Title of your navigation bar";
}
トリックをします
Appleのドキュメントから:
ナビゲーションバーの左側にあるバーボタンアイテムを使用すると、ナビゲーションスタックの前のViewControllerに戻ることができます。ナビゲーションコントローラーは、ナビゲーションバーの左側を次のように更新します。
新しいトップレベルのViewControllerにカスタムの左バーボタンアイテムがある場合、そのアイテムが表示されます。カスタムの左バーボタンアイテムを指定するには、ViewControllerのナビゲーションアイテムのleftBarButtonItemプロパティを設定します。
トップレベルのViewControllerにカスタムの左バーボタンアイテムがないが、前のView ControllerのナビゲーションアイテムのbackBarButtonItemプロパティに有効なアイテムがある場合、ナビゲーションバーにはそのアイテムが表示されます。
カスタムバーボタンアイテムがどちらのビューコントローラでも指定されていない場合、デフォルトの戻るボタンが使用され、そのタイトルは前のビューコントローラ(つまり、1レベル下のビューコントローラ)のtitleプロパティの値に設定されます。スタック。 (ナビゲーションスタックにView Controllerが1つしかない場合、戻るボタンは表示されません。)
お役に立てれば。
self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"Put Any Title"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
BackBarButtonItemを前のviewControllerのnavigationItemに設定します。この回答を確認してください https://stackoverflow.com/a/25680043/111277 。詳細な分析については、私のブログ投稿を確認してください iOS Set Navigation Bar Back Button Title 。
ストーリーボードソリューション用。
前のViewControllerのナビゲーション項目をクリックします。次に、右側のペインで属性インスペクターをクリックし、戻るボタン領域に「」などと入力します。これにより、次の(子)ViewControllerで何を表示するかがViewControllerに通知されます。それが役に立てば幸い
コードソリューション用。
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithTitle:@"back off" style:UIBarButtonItemStyleBordered target:self action:@selector(popView)];
[[self navigationItem] setBackBarButtonItem:customBarItem];
もう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];
}