2013-11-21 83 views
0

我是新來的Objective-C,今天我試圖改變我的導航欄的顏色,這一點也適用此代碼:如何更改導航欄的背景色的iOS 7

appDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0xf4f4f4)]; 

    return YES; 
} 

現在我嘗試更改特定的ViewController導航欄,這是行不通的。

ViewController2.m:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x363636)]; 
    self.navigationController.navigationBar.translucent = NO; 
} 

當我進入這個ViewContoller他的導航顏色爲f4f4f4當我去其他視圖控制器,回來它改變了顏色363636

爲什麼這不起作用?當您使用

[UINavigationBar appearance] 

它改變了所有的導航欄的 有人可以給我講解一下..

(對不起我的英語,謝謝。)

+0

請「接受」點擊旁邊的每個答案的勾號標記的最有用的答案。 – Neeku

回答

15

。在您的視圖控制器,只是做導航欄

[self.navigationBar setBarTintColor:UIColorFromRGB(0x363636)]; 
+0

[self.navigationController.navigationBar setTintColor:UIColorFromRGB(0x363636)]; 這不起作用。 – user3002217

+0

它不是setTintColor,但是setBarTintColor是導航條 – Nate

0

使用tintcolor屬性來改變顏色

2

您可以實現什麼但業視圖控制器的​​方法說。但是,如果您正在使用故事板,則還可以選擇navigation item並從File inspector更改色調顏色,而無需編碼。

enter image description here

+0

當我選擇NavigationItem時,故事板中沒有色調顏色。 – user3002217

+0

對不起,這是我的不好。它在'File Inspector'中。但它會在全局中更改色調顏色。我會編輯我的答案,指出正確的檢查員。我還發現了下面的文章,它有很好的解釋定製'導航欄'和'狀態欄';您可能會發現它很有用: http://www.appcoda.com/customize-navigation-status-bar-ios-7/ – Neeku

0

,你可以嘗試一下,我在我的AppDelegate導航欄的顏色改變,因此所有的應用程序具有相同的顏色,但我必須要改變導航欄的顏色在一個單一的視圖控制器,所以我做它:

在AppDelegate中

let color = UIColor(red:0.24, green:0.72, blue:0.28, alpha:1.0) 
    UINavigationBar.appearance().tintColor = UIColor.whiteColor() 
    UINavigationBar.appearance().barTintColor = color 

並且在viewDidLoad中視圖控制器

我有這樣的:

self.navigationController?.navigationBar.barTintColor = UIColor.blueColor() 
viewWillDissappear

這樣的:

super.viewWillDisappear(animated) 

    let color = UIColor(red:0.24, green:0.72, blue:0.28, alpha:1.0) 
    self.navigationController?.navigationBar.barTintColor = color 

它的導航欄顏色返回到相同顏色的

0

在iOS設備10可以使用barStyle這樣的:

對於白條顏色:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 

而對於黑色條形顏色:

self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 

BarStyle需要viewDidLoad中設置正常的動畫作品:)

相關問題