我是一名新的iOS开发人员,负责开发由前员工创建的项目。目前所有导航栏都是黑色的,我需要将它们更改为默认的蓝色。到目前为止,我已经找到了这一行:
[self.navigationController.navigationBar setTintColor:[[UIColor colorWithHue:0.6 saturation:0.33 brightness: 0.65 alpha:1.0] autorelease]];
它有效,但我不认为这是正确的方法。我也创建了一个新的屏幕,颜色是蓝色的,所以我想在某个地方必须有一个设置。在xib文件中,Top Bar是none,我们在viewDidLoad
中有这个代码if (self.navigationController.navigationBar.isHidden) {
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
else {
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
问题是:我可以设置默认颜色的地方吗?或者我必须以编程方式进行。
答案 0 :(得分:3)
在iOS 5中,您可以使用Appearence来执行此操作
[[UINavigationBar appearance]setTintColor:[UIColor redColor]];
例如,您可以在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中执行此操作。
在以前版本的iOS中,您应该在NavigationBar上创建一个类别,并覆盖它的绘图方法。
答案 1 :(得分:1)
创建导航控制器时,您可以设置栏的颜色:
navigationController = [[UINavigationController alloc] initWithRootViewController: mainView];
self.navigationController.navigationBar.tintColor = [UIColor <whatever color you want>];
或者,如果您只想要默认的蓝色:
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
答案 2 :(得分:1)
你正在以正确的方式做到这一点。当使用pushViewController时(例如,在UITableViewController中显示项目的详细视图时),可以在许多ViewController之间共享导航栏。
iOS5有一个新的UIAppearance功能,可以让您查看更详细的应用程序范围主题 - http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5
答案 3 :(得分:1)
要设置默认颜色,请使用:
[[UINavigationBar appearance]setTintColor:nil];
要使用渐变设置不同的颜色,请使用:
[[UINavigationBar appearance]setTintColor:[UIColor colorWithHue:hue/359.0f
saturation:saturation/100.0f
brightness:brightness/100.0f
alpha:alpha]];
请注意;色调,饱和度,亮度和alpha属于float
类型。