ストーリーボードを使用しており、特定のボタンが押された(または関数が呼び出された)ときに、メインナビゲーションコントローラーのトップバーを非表示にしようとしています。ストーリーボードからナビゲーションコントローラーを参照するオブジェクトを(識別子を使用して)初期化する必要があることは知っていますが、この新しく作成されたオブジェクトにsetNavigationBarHiddenメッセージを送信しても、実際には画面上で何も起こりません。
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController *navController = (UINavigationController*) [storyboard instantiateViewControllerWithIdentifier:@"MyNavController"];
[navController setNavigationBarHidden:YES animated:YES];
誰が問題が何であるか知っていますか?
最後にそれを解決しました。 viewControllerを介してのみナビゲーションバーを常に非表示にする必要があります。
上記の質問では、画面上の実際のnavControllerを指していないまったく新しいnavigationControllerをインスタンス化しました。次のようにView Controllerから「実際の」ものを取得できます。
[viewController.navigationController setNavigationBarHidden:YES animated:YES];
in Swift 4:
self.navigationController!.navigationBar.isHidden = true
このようなもの:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController!.navigationBar.isHidden = true
}
私は同じ問題に直面した、これは私のために働いた
navController.navigationBar.hidden = YES;
答えは正しいです。追加したいのは、他のビューが使用する可能性があるため、ビューを離れるときや、すべてを非表示にするときにナビゲーションバーを戻すことです。
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.isHidden = true
}
そして、ビューを離れる前に:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.navigationBar.isHidden = false
}
`
Xamarin.iOSで
base.NavigationController.NavigationBarHidden = true;
プロパティを変更した後の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];