始める前に、背景情報をいくつか紹介したいと思います。私のiOSアプリで、以前にカスタムの戻るボタンを実装しました。当時は数分で作業できたので、本当にいい経験でした。
しかし、今回は奇妙な問題に直面しました。まず、カスタムの戻るボタンがまったく表示されませんでした。そして、元の戻るボタンと重なるようにしました。ただし、元の戻るボタンを削除することはできませんでした。
ここで答えが見つかるまで途方に暮れていました: http://smartercoder.com/2010/10/18/what-to-do-it-self-navigationitem-hidesbackbutton-true-doesnt-work。解決策は、ナビゲーション項目に戻るボタンを非表示にしてカスタム ボタンを追加するように指示する前に、ダミーの左ボタンを設定して削除することでした。
ただし、カスタム ボタンが元のボタンに取って代わりましたが、結果は最初のアプリほど良くありません。プッシュ トランジションの間、元の [戻る] ボタンがまだ簡単に表示されます。明らかに、まったく表示されない方がよいでしょう。
これは私がviewDidLoadで実行するコードです:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] init]];
self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem = [UIBarButtonItem barButtonItemWithImage:[UIImage imageNamed:@"toolbar-button-back"] andAction:@selector(triggerBackNavigation:) withTarget:self];
プッシュトランジション(前後の両方)中に元の戻るボタンを完全に削除する方法を知っている人がいれば、ぜひ聞いてみたい.