我使用UINavigationController
及其默认UINavigationBar
而我试图关闭半透明效果,因此我可以在其上使用纯色。显然,它不能使用代码,但只需点击一下就可以使用故事板(很奇怪?!!)
我的代码:
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
为什么它不起作用?我该如何解决这个问题? 感谢。
答案 0 :(得分:11)
这是正确的方法。用户appearance
代理方法。
[[UINavigationBar appearance] setBarStyle:UIBarStyleDefault];
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
[self.navigationController.navigationBar setTranslucent:NO];
多数人&你完成了使用你想要的任何颜色。上面的代码使NavigationBar变为不透明(即纯色)。
答案 1 :(得分:2)
使用这种方式导航条的纯色我已经面临这个问题很多时间
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:APP_DELEGATE.map];
[navController setToolbarHidden:YES];
navController.navigationBar.barTintColor =[UIColor turquoiseColor];
[navController.navigationBar setTranslucent:NO];
答案 2 :(得分:2)
对于你们所有的Swiftians:
UINavigationBar.appearance().barStyle = UIBarStyle.Default
UINavigationBar.appearance().barTintColor = UIColor.redColor()
self.navigationController?.navigationBar.translucent = false
以上内容适用于Swift 1.2和Swift 2.
答案 3 :(得分:0)
我最终做的是创建一个UINavigationController子类并覆盖initWithRootViewController:
- 并完全按照你的方式做(将半透明设置为NO并应用条形色调,但现在我们当然正在操作self
)。
答案 4 :(得分:0)
UINavigationBar.appearance.barTintColor = [UIColor redColor];
UINavigationBar.appearance.tintColor = [UIColor whiteColor];
UINavigationBar.appearance.translucent = NO;
这将提供纯色背景颜色红色和文本颜色白色,属性为非半透明。