2012-06-21 52 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

相关问题