Ios ApplicationIdentinterBackground更改导航颜色

Ios ApplicationIdentinterBackground更改导航颜色,ios,ios7,uinavigationbar,Ios,Ios7,Uinavigationbar,我正在尝试设置导航栏颜色,并在ApplicationIDFinishLaunching上添加以下代码: //Set tint color [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; //Set title attributes [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAnd

我正在尝试设置导航栏颜色,并在
ApplicationIDFinishLaunching
上添加以下代码:

//Set tint color
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

//Set title attributes
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                      [UIFont fontWithName:@"Pacifico" size:21],
                                                      NSFontAttributeName, [UIColor whiteColor], NSForegroundColorAttributeName, nil]];

//Set navigationBar color
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor];
一切正常,应用程序启动,颜色正确,如下图所示

当我执行以下步骤时,会出现问题:

  • 我按下主页按钮,应用程序进入后台
  • 我双击home按钮查看我的应用程序,在navigationColor中显示但不显示红色,但在带有红色的渐变中显示黑色
  • 我点击打开它,它再次加载红色。(以下截图)
  • 可能问题与tabBarController.tabBarColor有关,因为我将其设置为黑色


    我不知道为什么会发生这种情况,我不知道全球色调是否有问题!这个问题发生在谁身上了吗?知道怎么修吗

    您正在寻找的方法不是
    applicationidenterbackground:
    applicationWillEnterForeground:
    。您应该使用
    applicationWillResignActive:
    applicationdidebecomeactive:

    下面是它们的工作原理。如果按一次home(主页)按钮最小化应用程序,则将按以下顺序调用
    ApplicationResignActive:
    ApplicationIdentinterBackground:
    。当你最大化你的应用程序时,
    应用程序将进入前台:
    applicationIDBECOMEACTIVE:
    被调用,同样以相同的顺序调用。但是,当您双击“主页”按钮查看最近使用的应用程序时,只会调用
    applicationWillResignActive:
    ,从该视图中选择您的应用程序将仅调用
    applicationidbecomeactive:
    。所以这些是你应该使用的方法

    A警告但是,如果您的应用处于活动状态,并且您通过拖动屏幕的下/上边缘打开控制中心或通知中心,也会调用这些方法

    希望您能利用这些信息为您带来好处。

    对于那些有相同问题的人,这与背景或前景无关。它只是在TopView下没有内容。 最后我找到了解决办法

    扩展顶部栏下的边未选中,我对其进行了检查,结果正常

  • 对于那些不知道如何显示的人,请转到故事板上的viewController,单击它
  • 在右基座上显示属性检查器(第四个按钮)
  • 有一部分写着“延伸边缘”
  • 检查顶部栏下,运行应用程序,一切都应该正常

  • 我不知道是什么原因导致导航栏变为黑色(我指的是没有内容的部分,它只是视图的一部分)

    在视图上执行操作将出现:我也在viewDidLoad和awakeFromNibYou上尝试过同样的结果你在一台真正的设备上?@DylanGattey是的iPhone 5,iOS 7.1.1也是因为我忘了提到,我在iPad Air上也试过了,结果还是一样。我不想使用
    applicationWillResignActive
    applicationdidebecomeactive
    。我只是想知道为什么颜色会随着渐变而变化。在一个特定的viewController中,我已经正确地设置了它,它并没有使用渐变,我只是想知道是什么导致它像我描述的那样运行!我道歉。但是,我创建了一个测试项目,并尝试使用
    UINavigationController
    s作为
    UITabBarController
    的每个选项卡中的控制器,并使用了与您在
    applicationdifinishlaunchingwithoptions:
    中提到的完全相同的代码。就我而言,它工作得很好。你确定我在回答中提到的其他方法中没有其他代码吗?我知道有一种情况,更改
    导航栏的帧可能会导致奇怪的行为。我们可以看一些代码吗?我也使用
    [[UITabBar外观]setbatintcolor:[UIColor blackColor]]在
    UITabBar
    上设置了
    barTintColor
    完成启动。仍然很好。谢谢你的观点,这应该是一个很好的建议。为了正确,您在每个选项卡中为NavigationController(我的意思是从故事板中的IB)创建了一个ViewController?