2012-02-05 49 views
6

我一直在尋找這個網站和其他如何設置導航欄的色調變化,我看過的例子,但不是我所需要的,所以任何幫助將不勝感激。使用Xcode更改導航欄的色調

在我的應用程序的委託,我有:

@synthesize window; 
@synthesize tabBarController; 
@synthesize navigationController; 
@synthesize navigationController1; 
@synthesize navigationController2; 
@synthesize viewController; 
@synthesize viewController2; 
@synthesize viewController3; 

#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions {  

    // Override point for customization after application launch. 


    // Set the tab bar controller as the window's root view controller and display. 
self.window.rootViewController = self.tabBarController; 
[self.window makeKeyAndVisible]; 


    return YES; 
} 

當我輸入代碼self.navigationController.navigationBar setTintColor:[UIColor blackColor]以上,它只是改變了我的導航控制器之一,但不是我所需要的。

我在我的tabbar上有7個項目,當我按下「MORE ...」時,我得到一個桌面視圖,其他項目不適合主屏幕,導航欄會自動添加,並且無論如何我做什麼我不能改變這個導航欄的色調,我可以改變那些我有@synthesize但不是自動輸入的。

有人可以讓我知道如何更改自動放置的導航欄嗎?

回答

17

您可以使用外觀代理來執行此操作。如果設置了顏色像這樣它將應用於每一個導航欄的應用程序:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 
+1

只想提及外觀代理僅適用於iOS 5. – Randall 2012-02-05 17:15:55

+0

正如setTintColor方法本身一樣。如果你需要這些東西來處理iSO,你需要一種不同的方法。這裏有一個討論鏈接到一些解決方案:http://stackoverflow.com/questions/9150956/customizeappearance-compatibility-on-others-ios/9151033#9151033 – 2012-02-05 17:20:25

+0

神奇,這就是我一直在尋找。非常感謝你。 – Derek 2012-02-06 07:58:14

3

對於iOS 6及更低版本:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 

對於iOS 7及更高版本:

[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]]; 

在AppDelegate中用此方法設置它。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions