在我的应用程序委托中,我调用以下代码将每个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)

10-07 19:43
查看更多