如何正确提交导航栏半透明度的更改?

时间:2017-05-02 09:34:03

标签: ios swift uinavigationbar

我遇到过这样的问题。 我有两个VC。其中一个有基本的导航栏,它继承自主Navigator栏。 在此导航栏中,我使用此类设置来自定义导航栏

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationBar.createGradientNavigatorBar()

    navigationBar.isTranslucent = false
    navigationBar.barTintColor = UIColor.init(red: 0/255, green: 97/255, blue: 185/255, alpha: 1)
    navigationBar.shadowImage = UIImage()

}

在第二个VC上我必须设置与视图相关的自定义渐变背景。为了这个目的,我将我的视野扩展到了酒吧的高度,并使标准变得平坦。这是代码:

override func viewWillAppear(_ animated: Bool) {
    isCurrentViewControllerAppropriate.shared.isCurrentVcAppropriate = isCurrentViewController()

    let firstColor = UIColor.init(red: 0/255, green: 94/255, blue: 198/255, alpha: 1)
    let secondColor = UIColor.init(red: 27/255, green: 145/255, blue: 226/255, alpha: 1)

    profileBackgroundView.createGradient(firstColor: firstColor.cgColor, secondColor: secondColor.cgColor)

    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.backgroundColor = UIColor.clear
    navigationController?.navigationBar.isTranslucent = true
}

override func viewWillDisappear(_ animated: Bool) {
    navigationController?.navigationBar.isTranslucent = false
}

一切正常,但我在vc之间有过艰难的过渡。我已经附上了。 正如你可能注意到当我回到我的第一个VC加载时,它有一个带有第二个VC的导航条颜色的人工制品,它会在一段时间后解析。我不知道如何处理它

enter image description here

我不确定我的方法是否正确,所以我很乐意听到任何建议考虑解决这个问题。

0 个答案:

没有答案