呈现UINavigationController色调不变

时间:2013-09-03 16:55:26

标签: ios objective-c uinavigationcontroller uinavigationbar

    MyVC *vc = [[MyVC alloc] init];
vc.delegate = self;

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
[nc.navigationBar setTintColor:[UIColor redColor]];
[self presentViewController:nc animated:true completion:^{}];

导航栏为黑色。我在我的App Delegate中创建的标签栏控制器内的导航控制器中显示此信息。在我的ApplicationDidFinishLaunchingWithOptions中,我可以控制那里的导航控制器的颜色。

为什么此导航控制器色调条变黑?

3 个答案:

答案 0 :(得分:0)

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

如果你的所有NavigationBars都是相同的颜色,我建议你使用它。对象的外观属性会对您应用的函数设置一致性。

答案 1 :(得分:0)

  • 您可以尝试为UINavigationBar制作自定义类

·H

@interface CustomUINavigationBar : UINavigationBar {

}

@end

的.m

@implementation CustomUINavigationBar

- (void)drawRect:(CGRect)rect {

    UIColor *color = [UIColor colorWithRed:0.023 green:0.14 blue:0.478 alpha:1];// for example
    self.tintColor = color;

}

@end

您也可以尝试在下面的代码中插入以下代码:AppDelegate.m的

的didFinishLaunchingWithOptions:
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];

答案 2 :(得分:0)

iOS7中,您必须使用barTintColor属性

[nc.navigationBar setBarTintColor:[UIColor redColor]];

而不是

[nc.navigationBar setTintColor:[UIColor redColor]];