私はユニバーサルアプリを持っています。iPadバージョンでは、UISplitViewController
を使用して、メールアプリに似たインターフェイスを作成しています。
新しい詳細ビューのプッシュで問題が発生したため、必要に応じてビューをプッシュおよびポップできるようにUINavigationController
を使用することにしました。ただし、ナビゲーションビューやツールバーは使用したくありません。しかし、私が何をしても、ナビゲーションバーを非表示にすることはできません。
IBの「ナビゲーションバーの表示」のチェックを外してみましたが、設定も試しました。
[self.navigationController setNavigationBarHidden:YES];
viewDidLoad
/viewDidAppear
/viewWillAppear
で。プッシュされる各ビューでも試してみました。何も動作しません。
ここに欠けているものはありますか?ツールバーやナビゲーションバーなしでUINavigationController
を使用することはできますか?
次のことができるはずです。
self.navigationController.navigationBar.hidden = YES;
ここで、self.navigationControllerは(明らかに)UINavigationControllerのインスタンスです。私にとってはうまくいくようですが、これを投稿する前に簡単にテストしただけです。
ナビゲーションバーが不要で、コンテンツを通常のナビゲーションバーの位置まで調整する場合は、使用する必要があります。
self.navigationController.navigationBarHidden = YES;
これにより、次のような結果が得られます。
一方、self.navigationController.navigationBar.hidden = YES;
は、navigationBarがある場所を提供します。このような:
Xcode 4.3.2の場合:
Navigation Controllerカテゴリには、次の2つのチェックボックスがあります。
[]ナビゲーションバーを表示
[]ツールバーを表示します
私のために働いた...
Swift 4
ViewWillAppearで非表示にします
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.isNavigationBarHidden = true;
}
その後、セグエをプッシュするときに元に戻すことができます(次のビューで戻るボタンを使用する場合)
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
self.navigationController?.isNavigationBarHidden = false;
}
self.navigationController.isNavigationBarHidden = true
または
self.navigationController.navigationBar.isHidden = true
注:iOS 10でテストするこれら2つのアプローチに違いは見られませんでした。