返回后为什么UINavigationBar颜色改变形成另一个具有diferente颜色的viewController

时间:2017-04-27 14:45:57

标签: ios swift

我的基本View控制器带有嵌入式导航控制器所以我设置了ist collor,当执行segue时,新视图拥有导航栏颜色并且它会改变它但是在返回到后视图之后这个视图需要来自previuos的颜色。 我正在设置导航栏的颜色,如下所示

 override func viewDidLoad() {
    self.navigationController?.navigationBar.barTintColor = appDelegate.verde
}

它在Appdelegate中定义的颜色为绿色 在下一个中,我以与上面相同的方式更改导航栏的颜色。

2 个答案:

答案 0 :(得分:1)

您更改UINavigationBar的颜色并保持更改,除非您明确将其更改为其他内容。 UINavigationBar不依赖viewControllers - 它在它们之上。

为了在每个viewController之间来回导航时使用不同的颜色,请在UINavigationBar中更改viewWillAppear(_ animated: Bool)的颜色。

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    self.navigationController?.navigationBar.barTintColor = appDelegate.verde
}

答案 1 :(得分:0)

您可以将此代码放在viewDidLoad中,而不是viewWillAppear。每次要呈现视图时都会调用它,因此它将覆盖其他视图的任何颜色更改。