UINavigationBar に、左側に標準の矢印が付いたカスタムの左戻るボタンを作成する 質問する

UINavigationBar に、左側に標準の矢印が付いたカスタムの左戻るボタンを作成する 質問する

カスタムの戻るボタンを作成するときは、次のコードを使用します。

    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

おすすめ記事