我知道如何在iOS 6中更改导航棒色调颜色:
[UINavigationBar appearance].tintColor = [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0];
我在APPDelegate页面中添加此代码。 现在我想在iOS 7中执行此操作,但上面的代码无效。 我在网上搜索。我有一个解决方案。通过在每个页面添加以下功能,我可以更改导航颜色。
self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0];
但是我需要一个可以添加到APPDelegate函数的函数。 请帮我解决这个问题。
答案 0 :(得分:14)
为什么不使用setBarTintColor
作为外观代理,您可以这样做:
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1)
{
[[UINavigationBar appearance] setTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]];
}
else
{
[[UINavigationBar appearance] setBarTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]];
}
答案 1 :(得分:7)
您可以在appdelegate.m中添加以下代码
if your app is navigation based
// for background color
[nav.navigationBar setBarTintColor:[UIColor blueColor]];
// for change navigation title and button color
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"FontNAme" size:20], NSFontAttributeName, nil]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
答案 2 :(得分:2)
使用respondsToSelector进行版本检查可能会更好。
if ([self.navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
[self.navigationBar setBarTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]];
} else {
[self.navigationBar setTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]];
}
答案 3 :(得分:0)
在Swift中,对我来说,当电子邮件弹出时,我想更改“取消”和“发送”按钮的色调颜色。而且效果很好。
(UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.self])).tintColor = UIColor.whiteColor()
答案 4 :(得分:-1)
尝试[self.navigationController.navigationBar setTranslucent:NO];