如何全局更改UINavigationBar颜色?

时间:2015-06-16 05:07:44

标签: ios swift uinavigationcontroller

我想从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

如何设置NavBar的颜色?

3 个答案:

答案 0 :(得分:27)

设置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
}

斯威夫特3:

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

我的输出:

enter image description here

答案 1 :(得分:0)

使用此

navigationController.navigationBar.barTintColor = UIColor.greenColor()

答案 2 :(得分:0)

您可以使用此

Objective C:

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

Swift:

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

它会让你的导航栏颜色为黄色。

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

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

  

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