表示されない iPhoneのナビゲーションバーにある「戻る」ボタンを隠す方法は?




uinavigationcontroller 戻る ボタン 画像 (9)

私は、アプリケーション内のビューを切り替えるナビゲーションコントロールを追加しました。 しかし、ビューの中には「戻る」(前のタイトル)ボタンはありません。 戻るボタンを隠す方法に関するアイデアはありますか?


コードを使用します。

 self.navigationItem.backBarButtonItem=nil;

私にとって上記のどれもうまくいかなかった、視覚的な効果はなかった。 私は、ナビゲーションコントローラに「埋め込まれている」ビューを備えたストーリーボードを使用しています。

私はその後コードレベルで私のmenuItemsを追加し、視覚的にビューの階層をデバッグするとき何らかの理由で "backButton"が表示され、私のmenuItemアイコンが目に見えない "戻るボタン"の下に表示されます。

私は様々なフック方法で示唆されているように設定を試したが、それは効果がなかった。 それから、私はもっと残酷なアプローチを試み、サブビューを反復しても効果はありませんでした。

私はアイコンのサイズを調べて、大丈夫と思われました。 リンゴヒューマンインタフェースガイドラインを参考にして、私のアイコンが正しいことを確認しました。 (私の場合は1ピクセル小さく24px 48px 72px)。

最も奇妙な部分は、実際の修正です...

BarButton Itemを追加するときには、少なくとも1文字のタイトルを与えます。私の場合はスペース文字です。

これが誰かを助けることを望みます。

//left menu - the title must have a space
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX 
                                                                    style:UIBarButtonItemStylePlain
                                                                  target:self
                                                                  action:@selector(showMenu)];
leftButtonItem.image = [UIImage imageNamed:@"ic_menu"];

[self.navigationItem setLeftBarButtonItem:leftButtonItem];

このコードをビューコントローラに追加する

UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;

これらを組み合わせるのが最善の方法です。手動で設定しても、戻るボタンは表示されません。

self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;

navコントローラを持つオブジェクト上で呼び出す必要があることを忘れないでください。 例えば、 self.navigationItem.hidesBackButton = YES持つタブバーコントローラを押している場合、 self.navigationItem.hidesBackButton = YESを呼び出すと何もself.navigationItem.hidesBackButton = YESません。 実際にはself.tabBarController.navigationItem.hidesBackButton = YES必要があります


私が設定したすべてのケースで私が働いていなかった

self.navigationItem.hidesBackButton = YES;

viewWillAppearまたはViewDidLoadで、私はviewControllerのinitでそれを設定すると完全に動作しました。


目標-C:
self.navigationItem.hidesBackButton = YES;

迅速:
navigationItem.hidesBackButton = true


私たちには今戻ってジェスチャーをするスライドがあることを忘れないでください。 これも削除することをお勧めします。 必要に応じて再度有効にすることを忘れないでください。

if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
    self.navigationItem.hidesBackButton = YES;
}

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}

UIViewControllerのviewDidLoad関数でコードを使用します:

self.navigationItem.hidesBackButton = YES;






navigation