1

我是一名新的 iOS 开发人员,从事一个由前雇员创建的项目。目前所有导航栏都是黑色的,我需要将它们更改为默认的蓝色。到目前为止,我已经弄清楚了这一行:

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

它有效,但我认为这不是正确的方法。我也创建了一个新屏幕,颜色是蓝色的,所以我认为某些地方必须有一个设置。在 xib 文件中,顶部栏是无的,我们在 viewDidLoad 中有这段代码

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

问题是:有没有可以设置默认颜色的地方?或者我必须以编程方式进行。

4

4 回答 4

3

在 iOS 5 中,您可以使用 Appearence 来做到这一点

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

例如,您可以在 you 中执行此操作- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

在以前的 iOS 版本中,您应该在 NavigationBar 上创建一个 Category,并覆盖它的绘图方法。

于 2012-06-21T16:57:28.083 回答
1

创建导航控制器时,您可以设置栏的颜色:

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

或者,如果您只想要默认的蓝色:

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
于 2012-06-21T16:57:44.827 回答
1

你做对了。当使用 pushViewController 时(例如,在 UITableViewController 中显示项目的详细视图时),导航栏可以在多个 ViewController 之间共享。

iOS5 有一个新的 UIAppearance 功能,用于更详细的应用程序范围的主题,您可能想查看 - http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5

于 2012-06-21T16:57:48.237 回答
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.

于 2012-06-25T20:25:35.727 回答