在快速

时间:2018-01-17 09:24:33

标签: ios swift uinavigationcontroller uinavigationbar swift4

我有2个视图,视图1的导航栏颜色为白色,视图2的导航栏颜色为绿色。因此,当我从view1导航到view2时,颜色会发生变化。但是,当我点击导航栏时,颜色变为白色,这是预期的,但最初绿色覆盖保持不变并快速消失。

第1步(第1步)

enter image description here

第2步(第2点)

enter image description here

第3步(从View2迁移到View1

enter image description here

然后突然改为

enter image description here

我使用的代码如下

适用于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()
    }

有人可以指导我如何在点击后退按钮时摆脱那些绿色叠加。

提前致谢

1 个答案:

答案 0 :(得分:0)

从你实现navigationBar的方式(没有看到你的代码)我假设你实现UINavigationController的方式是从控制器手动添加它或者从storyboard对象库拖动navigationBar而不是嵌入在NavigationController中你的故事板。如果这是正确的,您可以尝试使用Xcode菜单栏:

public_html/public

它将处理导航和导航栏本身。

如果不是,您可以在viewDidAppear()

中自定义navigationBar / color的大小

我希望它能回答你的问题。