カスタムの戻るボタンを作成するときは、次のコードを使用します。
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]initWithTitle:@"Yeah" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonPressed:)];
self.navigationItem.leftBarButtonItem = leftButton;
これは正常に動作し、次の結果が得られます。
結果は同じですが、矢印が左側に表示されます (カスタムの戻るボタンではなく、標準の戻るボタンの場合)。
この矢印を追加するにはどうすればいいでしょうか?
ベストアンサー1
最後に、標準の左矢印で戻るボタンのタイトルを定義するために使用するスニペットを示します。現在のビュー、 ない親ビューで:
- (void)viewDidLoad {
[super viewDidLoad];
[self setTitle:@"Current View"];
// Get the previous view controller
UIViewController *previousVC = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2];
// Create a UIBarButtonItem
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"FooBar" style:UIBarButtonItemStyleBordered target:self action:@selector(yourSelector)];
// Associate the barButtonItem to the previous view
[previousVC.navigationItem setBackBarButtonItem:barButtonItem];
}
結果は次のとおりです:
注記 :ただし、backBarButtonItemにアクションを追加することはできないため、この素晴らしい投稿あなたがそうしたいなら。
Swift 用に更新
// Prev - no chevron...
//navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back !", style: .plain, target: self, action: #selector(backPressed))
// adds the chevron
let vc = navigationController?.viewControllers.first
let button = UIBarButtonItem(title: "Go Back", style: .plain, target: self, action: #selector(backPressed))
vc?.navigationItem.backBarButtonItem = button