2012-06-21 51 views
1

我是一名新的iOS開發人員,負責一名前職員創建的項目。目前所有的導航欄都是黑色的,我需要將它們更改爲默認的藍色。到目前爲止,我已經想通了這行:有沒有可以設置UINavigationBar默認顏色的地方?

[self.navigationController.navigationBar setTintColor:[[UIColor colorWithHue:0.6 saturation:0.33 brightness: 0.65 alpha:1.0] autorelease]]; 

它的工作,但我不認爲這是應該做的正確方法。我也創建了一個新的屏幕,顏色是藍色的,所以我認爲必須在某個地方設置一個設置。在廈門國際銀行文件最上面一欄是沒有的,我們有這樣的代碼在viewDidLoad中

if (self.navigationController.navigationBar.isHidden) { 
     [self.navigationController setNavigationBarHidden:NO animated:YES]; 
    } 
    else { 
     [self.navigationController setNavigationBarHidden:NO animated:NO]; 
    } 

的問題是:有沒有我可以設置默認顏色的地方嗎?或者我必須以編程方式進行。

回答

1

當您創建導航控制器,你可以設置欄的顏色:

navigationController = [[UINavigationController alloc] initWithRootViewController: mainView]; 
self.navigationController.navigationBar.tintColor = [UIColor <whatever color you want>]; 

或者,如果你只是想默認的藍色:

self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 
+1

如果您需要iOS 4支持,請使用此選項,否則新的UIAppearance功能看起來相當不錯。 – DGund

+1

完美運作。謝謝! –

3

在iOS 5中,你可以使用Appearence做

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

你可以在你- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions做到這一點,例如。

在之前的iOS版本中,您應該在NavigationBar上創建一個類別,並覆蓋它的繪圖方法。

1

你這樣做的正確的方法。當使用pushViewController時(例如,在UITableViewController中顯示項目的詳細視圖時),可以在許多ViewController之間共享導航欄。

iOS5中有更詳細的應用範圍更換主題皮膚新UIAppearance功能,你可能想看看 - http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5

1

要設置默認的顏色,使用:

[[UINavigationBar appearance]setTintColor:nil]; 

要設置不同的顏色有梯度,用途:

[[UINavigationBar appearance]setTintColor:[UIColor colorWithHue:hue/359.0f 
                saturation:saturation/100.0f 
                brightness:brightness/100.0f 
                  alpha:alpha]]; 

請注意;色相,飽和度,亮度和阿爾法類型是float

相關問題