ios - 如何根据用户选择为每个 VC 更改导航栏 Controller 颜色?

标签 ios swift uinavigationbar

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

关于ios - 如何根据用户选择为每个 VC 更改导航栏 Controller 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41257051/

相关文章:

iphone - 为什么带有 iOS 6.1.3 的 iPhone 4 无法连接 xcode 4.5 进行测试?

ios - 为什么 `viewWillAppear` 将 `animated` 设置为 true,即使在呈现 `present(_, animated: false, _)` 时也是如此?

swift - 有什么好方法可以避免对相同的结构元素数组重复数组索引访问操作?

ios - 导航栏透明度问题

ios - 推送通知的证书和配置文件

ios UITableViewController 重叠状态栏

ios - ionic 5 电容器 : Push Notification with ONESIGNAL not working on iOS

ios - 如何在 iOS 上快速关闭 pub nub 日志记录?

ios - 打印变量 Unwind Segue - Xcode 8.0 Swift 3.0

ios - 空白代替隐藏的标签栏