iOS 7中的纯色UINavigationBar

6
我是使用默认的UINavigationBarUINavigationController,但我想关闭它的半透明效果,让它显示一个纯色。似乎这无法通过代码实现,但在storyboard中只需单击一下即可实现(有些奇怪?!)。
我的代码:
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:APP_DELEGATE.map];
[navController setToolbarHidden:YES];
[navController.navigationBar setTranslucent:NO];
[navController.navigationBar setBarTintColor:[UIColor turquoiseColor]];
//    [[UINavigationBar appearance] setBarTintColor:[UIColor turquoiseColor]]; | also doesn't work

为什么它不能工作?我该怎么解决呢? 谢谢。


1
@PhamHona:你应该接受正确的答案,以保持良好的工作状态。 - Balram Tiwari
5个回答

13

这是正确的做法。使用appearance代理方法。

[[UINavigationBar appearance] setBarStyle:UIBarStyleDefault];
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
[self.navigationController.navigationBar setTranslucent:NO];

完成了,你可以使用任何你想要的颜色。上面的代码将NavigationBar设置为不透明(即纯色)。


4

对于所有的Swift程序员:

UINavigationBar.appearance().barStyle = UIBarStyle.Default
UINavigationBar.appearance().barTintColor = UIColor.redColor()
self.navigationController?.navigationBar.translucent = false

以上代码适用于Swift 1.2和Swift 2。


我更喜欢Swifters :P - jaytrixz

2

我经常遇到导航栏颜色统一的问题,这里提供了一个可行的解决方法。

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:APP_DELEGATE.map];
[navController setToolbarHidden:YES]; 
navController.navigationBar.barTintColor =[UIColor turquoiseColor];
[navController.navigationBar setTranslucent:NO];

0
UINavigationBar.appearance.barTintColor = [UIColor redColor];
UINavigationBar.appearance.tintColor = [UIColor whiteColor];
UINavigationBar.appearance.translucent = NO;

这将提供红色的坚实背景颜色和白色的文本颜色,属性为不透明。


0
我最终做的是创建了一个UINavigationController子类并覆盖了initWithRootViewController:方法 - 然后在那里执行了与您相同的操作(将translucent设置为NO并应用bar tint颜色,只不过现在我们是在self上操作)。

我尝试过但无效。此外,故事板方式也不起作用(在测试项目中可以工作,但在我的主项目中却不能,即使我完全按照每个步骤操作)。我以为这只需要一两行的代码就可以完成,但人们也在苦苦挣扎,很遗憾。 - Pham Hoan
天啊!它终于成功了,我的代码成功了,你的代码也成功了。只是颜色名称错了。我以为“turquoiseColor”比“greenseaColor”深,而且“UINavigationBar”让它看起来褪色了。浪费了两个小时,真该死!对不起啊。 - Pham Hoan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接