单击视图时出现导航栏
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.
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.