2015-06-16 41 views
7

我想從AppDelegate全局更改整個應用程序的UINavigationBar顏色。對我來說:如何在全球範圍內更改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顏色?

+1

可能重複的[如何改變從應用程序委託UINavigationBar的背景顏色(http://stackoverflow.com/questions/17014713/how-to-change-uinavigationbar-background-顏色從應用程序代表) – hyd00

+1

你只是忘了用255分開,並使用barTintColor設置導航欄的顏色。我已經添加了一個答案。希望它有幫助 –

回答

17

設置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

+0

但我該如何禁用酒吧的透明度? –

+0

當我嘗試'navigationBar.translucent = false'它使它成爲白色=/ –

+0

我嘗試'UINavigationBar.appearance()。translucent = false',它給了我白條 –

0

使用此

navigationController.navigationBar.barTintColor = UIColor.greenColor() 
+0

'使用未解析的標識符'navigationController''錯誤 –

+0

在appdelegate.h中爲navigationController創建屬性,並連接到您的navigationController – suthar

0

您可以使用此

Objective C: 

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

Swift: 

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

它會讓你用黃色導航欄。

PS:不要使用tintColor,tint color是後退按鈕的標題。

導航欄還有其他屬性。 你可以在蘋果網站上查詢它們以及&可以根據你的需要應用解決方案。

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