我在UINavigationController
中有三个viewControllers。在第二个我需要隐藏导航栏但不是后退按钮和其他酒吧按钮。出于这个原因,我不能使用isNavigationBarHidden = true
目前我处理上述如下:UINavigationController只隐藏navigationBar - Back动画问题
第一的viewController:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.barTintColor = Constants.kThemeRedColor
self.navigationController?.navigationBar.tintColor = UIColor.white
self.navigationController?.navigationBar.barStyle = .black
self.navigationController?.navigationBar.isTranslucent = false
}
二的viewController(只隐藏的导航栏):
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.view.backgroundColor = UIColor.clear
}
这里的问题是,当我从firstViewController导航到firstViewController时,在第一个viewController分别消失和出现的很短时间内,我看到一个黑色的导航栏。我知道这是因为在第二个viewController中编写的代码。但我没有任何其他解决方案。附加截图:
第一的viewController(应该如何):
二的viewController:
第一的viewController(有黑色导航栏持续时间短):
什么是你的免费视图颜色?在navbar下面是tableview吗? –