单击视图时出现导航栏

Navigation bar appear on click on view

I attach the video of my issue. When i click on anywhere in viewcontroller navigation bar is appear

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

上面添加到视图上的代码最初会显示正常工作,但是当我单击屏幕上的任意位置时,导航栏就会出现。

试试下面代码改成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
}

And ADD 在 Other ViewController 下面的代码中你想显示 Navigationbar (不是在所有其他 ViewController 中,只是在 ViewController 你推或弹出这个ViewController)

self.navigationController?.setNavigationBarHidden(false, animated: true)

尝试使用全局队列

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

或简单地在 viewDidAppear

中添加此代码
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

如果这两个不起作用,请检查您的视图点击事件,可能是为导航添加了一些代码

检查 Storyboard 中的主要 UINavigationController Storyboard 属性并取消选中 "Hide bars when vertically compact"、"Hide bars on tap"。这会导致在单击视图时出现导航栏。

如果您以编程方式创建 UINavigationController,请使用以下代码。

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

这个解决方案终于对我有用

self.navigationController?.navigationBar.transform = CGAffineTransform(translationX: 0, y: -200)

尝试以下

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

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

我遇到了同样的问题 too.Storyboard 我删除并重新创建了 viewController,它已修复。出于这个原因,我认为问题与 viewController 有关,与 NavigationController 无关。我建议您删除并重新创建 viewController.