iPhoneのナビゲーションバーの「戻る」ボタンを非表示にする方法は?
-
03-07-2019 - |
質問
アプリのビューを切り替えるナビゲーションコントロールを追加しました。ただし、一部のビューには[戻る](前のタイトル)ボタンがありません。戻るボタンを非表示にする方法についてのアイデアはありますか?
解決
Objective-C:
self.navigationItem.hidesBackButton = YES;
Swift:
navigationItem.hidesBackButton = true
他のヒント
最良の方法はこれらを組み合わせることです。手動で設定した場合でも戻るボタンは非表示になります。
self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;
以下のコードで戻るボタンを非表示...
[self.navigationItem setHidesBackButton:YES animated:YES];
または
[self.navigationItem setHidesBackButton:YES];
カスタムの UINavigationBar
がある場合は、以下のコードを試してください
self.navigationItem.leftBarButtonItem = nil;
コードを使用:
self.navigationItem.backBarButtonItem=nil;
Swift の場合:
これをコントローラーに追加します
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.setHidesBackButton(true, animated: false)
}
UIViewControllerの関数viewDidLoadで次のコードを使用します。
self.navigationItem.hidesBackButton = YES;
navコントローラを持つオブジェクトで呼び出す必要があることを忘れないでください。たとえば、RootViewControllerでTab Bar Controllerを押すnavコントローラーがある場合、RootViewControllerで self.navigationItem.hidesBackButton = YES
を呼び出しても何も起こりません。実際には、 self.tabBarController.navigationItem.hidesBackButton = YES
スライドを戻すためのジェスチャがあることを忘れないでください。これもおそらく削除したいでしょう。 必要に応じて再度有効にすることを忘れないでください。
if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
self.navigationItem.hidesBackButton = YES;
}
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
View Controllerにこのコードを追加します
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
私にとっては、上記のどれも機能していないようでした。視覚効果はありませんでした。 「埋め込み」ビューのストーリーボードを使用していますNavigation Controllerで。
次に、コードレベルでmenuItemを追加し、何らかの理由で" backButton"を追加します。ビュー階層を視覚的にデバッグするときに表示され、非表示の「戻るボタン」の下にmenuItemアイコンが表示されます。
さまざまなフックメソッドで提案されているように設定を試しましたが、効果はありませんでした。次に、より残忍なアプローチを試みて、サブビューを繰り返しましたが、効果もありませんでした。
アイコンのサイズを調べたところ、問題ないように見えました。 アップルのヒューマンインターフェイスガイドラインを参照した後、アイコンが正しいことを確認しました。 (私の場合、24ピクセル、48ピクセル、72ピクセル、1ピクセル小さい)。
最も奇妙な部分は実際の修正です...
BarButtonアイテムを追加するとき、少なくとも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];
設定したすべてのケースで機能していませんでした
self.navigationItem.hidesBackButton = YES;
viewWillAppearまたはViewDidLoadではですが、viewControllerのinitで設定すると完全に機能しました。
これを試してください-
self.navigationController?.navigationItem.hidesBackButton = true
c#またはXamarin.iosでは、 this.NavigationItem.HidesBackButton = true;