web-dev-qa-db-ja.com

ストーリーボード-ナビゲーションコントローラーの上部バーをプログラムで非表示にする

ストーリーボードを使用しており、特定のボタンが押された(または関数が呼び出された)ときに、メインナビゲーションコントローラーのトップバーを非表示にしようとしています。ストーリーボードからナビゲーションコントローラーを参照するオブジェクトを(識別子を使用して)初期化する必要があることは知っていますが、この新しく作成されたオブジェクトにsetNavigationBarHiddenメッセージを送信しても、実際には画面上で何も起こりません。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController *navController = (UINavigationController*) [storyboard instantiateViewControllerWithIdentifier:@"MyNavController"];

[navController setNavigationBarHidden:YES animated:YES];

誰が問題が何であるか知っていますか?

30
animal_chin

最後にそれを解決しました。 viewControllerを介してのみナビゲーションバーを常に非表示にする必要があります。

上記の質問では、画面上の実際のnavControllerを指していないまったく新しいnavigationControllerをインスタンス化しました。次のようにView Controllerから「実際の」ものを取得できます。

[viewController.navigationController setNavigationBarHidden:YES animated:YES];
69
animal_chin

Navigation Controllerのトップバーを非表示にする方法は2つあります:

1)プログラムで

[self.navigationController setNavigationBarHidden:YES animated:YES];

2)Interface Builderの使用

Navigation Controllerのプロパティリストで「Show Navigation Bar」のチェックを外すことができます。

enter image description here

Navigation Controllerを含むシーンを選択したことを確認してください。シーンのサンプル画像。
enter image description here

21
Aamir

in Swift 4:

self.navigationController!.navigationBar.isHidden = true

このようなもの:

override func viewDidLoad() {
        super.viewDidLoad()
       self.navigationController!.navigationBar.isHidden = true
    }
9
Brian

私は同じ問題に直面した、これは私のために働いた

navController.navigationBar.hidden = YES;

5
jwall

答えは正しいです。追加したいのは、他のビューが使用する可能性があるため、ビューを離れるときや、すべてを非表示にするときにナビゲーションバーを戻すことです。

override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationController?.navigationBar.isHidden = true
    }

そして、ビューを離れる前に:

override func viewWillDisappear(_ animated: Bool) {
      super.viewWillDisappear(animated)
      self.navigationController?.navigationBar.isHidden = false
}

`

2
user1296082

Xamarin.iOSで

base.NavigationController.NavigationBarHidden = true;
1
Durai Amuthan.H

プロパティを変更した後のSetRoot RootViewController。

  UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

// Create Navigation controller with RootViewController
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:[storyBoard instantiateViewControllerWithIdentifier:@"MyRootViewController"]];

RootViewControllerの設定

 [appDelegate.window setRootViewController: navController];

または、任意のViewControllerでできること

[self.navigationController setNavigationBarHidden:YES animated:YES];
0
Dhiru

Attribute InspectorでBar Visibility "Shows Navigation Bar"のチェックを外して、ナビゲーションバーを非表示にします。

enter image description here

0
Avijit Nagare