問題のビデオを添付します。ビューコントローラーのナビゲーションバーのどこかをクリックすると、表示されます
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: true)
self.navigationController?.isNavigationBarHidden = true
self.navigationController?.hidesBarsOnTap = true
}
上記のコードは、viewに追加すると最初は機能しているように見えますが、画面のどこかをクリックすると、ナビゲーションバーが表示されます。
グローバルキューで試す
DispatchQueue.global().async {
navigationController?.setNavigationBarHidden(true, animated: animated)
}
または単純にこのコードをviewDidAppear
に追加します
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: animated)
}
この2つが機能しない場合は、ビューのタップイベントを確認してください。ナビゲーション用のコードが追加されている可能性があります。
試してみる以下のコードをViewController
に隠しますNavigationBar
DispatchQueue.main.async {
self.navigationController?.setNavigationBarHidden(true, animated: false)
self.view.isUserInteractionEnabled = true
//Below code conflicts with the hidden `NavigationBar` and make it visible on tap so set it false as below
self.navigationController?.hidesBarsOnTap = false
}
およびADD表示するその他のViewController
のコードの下Navigationbar
(他のすべてのViewController
ではなく、ViewController
のみthis ViewController
)からプッシュまたはポップ
self.navigationController?.setNavigationBarHidden(false, animated: true)
以下で試してください
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.isNavigationBarHidden = true
}
override func viewWillDisappear(_: Bool) {
super.viewWillDisappear(true)
navigationItem.title = ""
}