在我的应用程序委托中,我调用以下代码将每个VC的导航栏颜色设置为蓝色。但是,如果用户没有登录,只是在旋转应用程序,我希望导航栏是红色的。
UINavigationBar.appearance().barTintColor = UIColor(red: 108.0/255.0, green: 158.0/255.0, blue: 236.0/255.0, alpha: 1.0) // Blue
// UINavigationBar.appearance().barTintColor = UIColor(red: 239.0/255.0, green: 119.0/255.0, blue: 97.0/255.0, alpha: 1.0) // Red
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white]
如何根据每个VC的用户选择来改变颜色?
最佳答案
像这样在viewWillAppear
方法中的每个VC中更改颜色
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
navigationController?.navigationBar.barTintColor = UIColor(red: 0/255.0, green: 210/255.0, blue: 255/255.0, alpha: 1.0)
}
如果您正在等待某个事件发生,那么您可以在完成后更改它。这样地
navigationController?.navigationBar.barTintColor = UIColor(red: 0/255.0, green: 210/255.0, blue: 255/255.0, alpha: 1.0)