5

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

4

5 回答 5

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]];
}
于 2013-11-11T07:34:48.250 回答
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]];
于 2014-02-12T11:21:09.967 回答
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]];
 }
于 2014-03-03T03:02:48.177 回答
0

在 Swift 中,对我来说,我想在弹出电子邮件时更改取消和发送按钮的色调颜色。而且效果很好。

(UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.self])).tintColor = UIColor.whiteColor()
于 2016-08-27T17:16:54.587 回答
-1

试试 [self.navigationController.navigationBar setTranslucent:NO];

于 2014-04-24T08:31:21.807 回答