我有2个视图,视图1的导航栏颜色为白色,视图2的导航栏颜色为绿色。因此,当我从view1导航到view2时,颜色会发生变化。但是,当我点击导航栏时,颜色变为白色,这是预期的,但最初绿色覆盖保持不变并快速消失。
第1步(第1步)
第2步(第2点)
第3步(从View2迁移到View1 )
然后突然改为
我使用的代码如下
适用于view1
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.isTranslucent = false
navigationController?.navigationBar.barTintColor = UIColor(hexString: "#FFFFFF")
self.navigationController?.isNavigationBarHidden = false
self.navigationItem.hidesBackButton = true
let image = UIImage(named: "navBardTitleLogoBG")
self.navigationItem.titleView = UIImageView(image: image)
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
imageView.contentMode = .center
}
对于view2,代码如下
override func viewWillAppear(_ animated: Bool) {
UIView.animate(withDuration: 0.5)
{
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.barTintColor = UIColor(hexString: "#14B80E")
self.navigationController?.navigationBar.shadowImage = UIImage()
self.setStatusBarBackgroundColor(color: UIColor(hexString: "#14B80E"))
self.navigationItem.title = "Recipe Book"
self.navigationController?.navigationBar.layoutIfNeeded()
}
有人可以指导我如何在点击后退按钮时摆脱那些绿色叠加。
提前致谢
答案 0 :(得分:0)
从你实现navigationBar的方式(没有看到你的代码)我假设你实现UINavigationController的方式是从控制器手动添加它或者从storyboard对象库拖动navigationBar而不是嵌入在NavigationController中你的故事板。如果这是正确的,您可以尝试使用Xcode菜单栏:
public_html/public
它将处理导航和导航栏本身。
如果不是,您可以在viewDidAppear()
中自定义navigationBar / color的大小我希望它能回答你的问题。