web-dev-qa-db-ja.com

ビューをクリックするとナビゲーションバーが表示される

問題のビデオを添付します。ビューコントローラーのナビゲーションバーのどこかをクリックすると、表示されます

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(true, animated: true)
    self.navigationController?.isNavigationBarHidden = true
    self.navigationController?.hidesBarsOnTap = true
}

上記のコードは、viewに追加すると最初は機能しているように見えますが、画面のどこかをクリックすると、ナビゲーションバーが表示されます。

8
kishor soneji

グローバルキューで試す

DispatchQueue.global().async {
     navigationController?.setNavigationBarHidden(true, animated: animated)
}

または単純にこのコードをviewDidAppearに追加します

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

この2つが機能しない場合は、ビューのタップイベントを確認してください。ナビゲーション用のコードが追加されている可能性があります。

0
NøBi Mac

試してみる以下のコードを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)
0
Nayan Dave

ストーリーボードでメインのUINavigationControllerストーリーボードプロパティを確認し、[垂直方向にコンパクトな場合はバーを非表示]、[タップ時にバーを非表示]をオフにします。これにより、ビューをクリックするとナビゲーションバーが表示されます。

プログラムでUINavigationControllerを作成する場合は、次のコードを使用します。

UINavigationController().hidesBarsWhenVerticallyCompact = false
UINavigationController().hidesBarsOnTap = false

enter image description here

0
Sand'sHell811

以下で試してください

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.isNavigationBarHidden = true
}

override func viewWillDisappear(_: Bool) {
    super.viewWillDisappear(true)
    navigationItem.title = ""
}
0
JhonnyTawk