如何全局更改 UINavigationBar 颜色?

How to change UINavigationBar color globally?

我想从 AppDelegate 全局更改整个应用程序的 UINavigationBar 颜色。为此,我这样做:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
UINavigationBar.appearance().tintColor = UIColor(red: 63, green: 172, blue: 236, alpha: 1)
}

但是,我不知道为什么,它没有改变我的导航栏的颜色。

我已将导航栏连接为 Editor > Embed In > Navigation Controller

如何设置导航栏的颜色?

使用这个

navigationController.navigationBar.barTintColor = UIColor.greenColor()

设置barTintColor

UINavigationBar.appearance().barTintColor = UIColor(red: 63.0/255.0, green: 172.0/255.0, blue: 236.0/255.0, alpha: 1.0)

我想你忘了除以 255

为关闭translucent。在您的第一个根控制器中按如下方式执行。

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController!.navigationBar.translucent = false
}

Swift 3 :

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController!.navigationBar.isTranslucent = false
}

我的输出:

你可以使用这个

Objective C:

    self.navigationController.navigationBar.barTintColor = [UIColor yellowColor];

Swift:

self.navigationController.navigationBar.barTintColor = UIColor.yellowColor()

它会让你的导航栏变成黄色。

PS : 不要使用 tintColor,tint 颜色用于后退按钮标题。

导航栏还有其他属性。 您也可以在 Apple 网站上查看它们,并可以根据需要应用解决方案。

https://developer.apple.com/reference/uikit/uinavigationbar