更改导航栏色调iOS 7。

时间:2013-11-10 16:18:42

标签: ios ios7 uinavigationbar uicolor appdelegate

我知道如何在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函数的函数。 请帮我解决这个问题。

5 个答案:

答案 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];