web-dev-qa-db-ja.com

iPhoneのナビゲーションバーで「戻る」ボタンを隠すには?

私は自分のアプリでビューを切り替えるナビゲーションコントロールを追加しました。しかし、ビューの中には「戻る」(前のタイトル)ボタンがないものがあります。戻るボタンを隠す方法について何かアイデアはありますか?

308
Chilly Zhong

目的C:
self.navigationItem.hidesBackButton = YES;

迅速:
navigationItem.hidesBackButton = true

795
user8170

最善の方法はこれらを組み合わせることであるため、手動で設定しても戻るボタンは隠されます。

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

ベローコードで戻るボタンを隠す...

[self.navigationItem setHidesBackButton:YES animated:YES];

または

[self.navigationItem setHidesBackButton:YES];

あなたがカスタムUINavigationBarを持っているならば、また、以下のコードを試してください

self.navigationItem.leftBarButtonItem = nil;
19
Paras Joshi

Swiftで:

これをコントローラーに追加します

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.setHidesBackButton(true, animated: false)
}
5
King-Wizard

コードを使用してください:

 self.navigationItem.backBarButtonItem=nil;
5
Gurpreet Singh

UIViewControllerの関数viewDidLoadに次のコードを使用します。

self.navigationItem.hidesBackButton = YES;
3
indiefr

ナビゲーションコントローラを持つオブジェクトでそれを呼び出す必要があることを忘れないでください。たとえば、RootViewControllerでTab Bar Controllerをプッシュしているnavコントローラがある場合、RootViewControllerでself.navigationItem.hidesBackButton = YESを呼び出しても何も起こりません。あなたは実際にself.tabBarController.navigationItem.hidesBackButton = YESを呼ばなければならないでしょう

2
Tyler

ジェスチャーを後退させるスライドがあることを忘れないでください。おそらくこれも削除したいでしょう。 必要に応じて再度有効にするのを忘れないでください

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

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

このコードをView Controllerに追加してください。

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

私が設定したときそれはすべての場合に私のために働いていませんでした

self.navigationItem.hidesBackButton = YES;

viewWillAppearまたはViewDidLoadでは、viewControllerのinitで設定したときに完璧に機能しました。

1
Joe M

私には上記のどれもうまくいかないようでした、それは視覚的な効果がありませんでした。ナビゲーションコントローラに「埋め込まれた」ビューを持つストーリーボードを使用しています。

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

さまざまなフックメソッドで提案されているように、私は設定を試しましたが、それは効果がありませんでした。それから私はより残忍なアプローチを試みて、やはり効果がなかったサブビューを反復しました。

私は自分のアイコンのサイズを調べたところ、問題ないようでした。彼のAppleヒューマンインタフェースガイドラインを参照した後、私は自分のアイコンが正しいことを確認しました。 (私の場合は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];
1
Wayne

これを試してください - self.navigationController?.navigationItem.hidesBackButton = true

0
Ahil Rahesh

C#またはXamarin.iosでは、this.NavigationItem.HidesBackButton = true;です。

0