在 Appdelegate 中设置后如何更改导航栏的色调?

Posted

技术标签:

【中文标题】在 Appdelegate 中设置后如何更改导航栏的色调?【英文标题】:How to change navigation bar tint color after setting in Appdelegate? 【发布时间】:2018-01-13 10:26:14 【问题描述】:

我已经完成了以下操作来全局更改导航栏色调:

1) 在info.plist 中将View controller-based status bar appearance 设置为NO

2) 在 Appdelegate 中,我将颜色更改为黑色:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 

     UINavigationBar.appearance().barTintColor = .black

这工作正常。所有视图控制器导航栏都变成黑色。我想要的是我的视图控制器之一(只有一个)导航栏颜色需要为白色。

所以我的问题是,是否可以在 AppDelegate 中设置后仅更改一个视图控制器的导航栏颜色?

【问题讨论】:

【参考方案1】:

是的,你可以。即使在全局设置后更改导航栏颜色。

您可以在视图控制器中检查UINavigationBar 并设置色调颜色。

self.navigationController?.navigationBar.tintColor = UIColor.white 

它将条形按钮项目的颜色设置为白色。

self.navigationController?.navigationBar.barTintColor = UIColor.red

它将导航栏颜色设置为红色。

所以AppDelegate 中设置的全局颜色将被视图控制器中导航栏的本地颜色覆盖

【讨论】:

以上是关于在 Appdelegate 中设置后如何更改导航栏的色调?的主要内容,如果未能解决你的问题,请参考以下文章

仅在一个 ViewController 中更改导航栏属性

转到下一个视图会更改导航栏背景颜色

appDelegate 中的委托功能不会更改导航栏颜色

如何在所有场景中设置导航栏背景颜色

如何改变导航栏的颜色?

在 activityViewController 中更改 barTintColor