質問

アプリのビューを切り替えるナビゲーションコントロールを追加しました。ただし、一部のビューには[戻る](前のタイトル)ボタンがありません。戻るボタンを非表示にする方法についてのアイデアはありますか?

役に立ちましたか?

解決

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;

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top