iOS 7:UINavigationBar更改第二个视图上的颜色将出现

iOS 7:UINavigationBar更改第二个视图上的颜色将出现,ios,objective-c,iphone,Ios,Objective C,Iphone,这是一个非常奇怪的问题,我以前没有见过,也几乎没有注意到,你可能需要调整显示器的亮度 我有一个UIViewController,嵌入在UINavigationController中。它下面还有一个UIToolbar,没什么特别的。我在AppDelegate中设置了一次UINavigationBar和其他组件的背景色和字体,如下所示: [[UINavigationBar appearance] setBarTintColor:UIColorFromRGBA(0x013060,1)]; [[UITo

这是一个非常奇怪的问题,我以前没有见过,也几乎没有注意到,你可能需要调整显示器的亮度

我有一个UIViewController,嵌入在UINavigationController中。它下面还有一个UIToolbar,没什么特别的。我在AppDelegate中设置了一次UINavigationBar和其他组件的背景色和字体,如下所示:

[[UINavigationBar appearance] setBarTintColor:UIColorFromRGBA(0x013060,1)];
[[UIToolbar appearance] setBarTintColor:UIColorFromRGBA(0x013060,1)];
[[UISegmentedControl appearance] setTintColor:UIColorFromRGBA(0xFFFFFF,1)];
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                       [UIColor whiteColor], NSForegroundColorAttributeName,
                                                       [UIFont fontWithName:@"AvenirNext-Regular" size:17.0], NSFontAttributeName,
                                                       nil]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; // back button etc. text color
相当标准。现在,如果我点击过滤器按钮查看我的图像,我会打开一个模态视图,它是一个序列,没有代码,它在Interface Builder中自动连接。这就行了,然后我再次关闭该模态视图控制器,并返回到主控制器中

不想要的行为:UINavigationBar现在已经改变了它的背景颜色,只是很微妙,但很明显。 预期行为:与以前相同的颜色

在我结束应用程序之前,这种情况一直存在。控制器第一次出现时会发生一些事情,第二次不会,反之亦然


我的ViewWillDisplay是我唯一的代码,没有viewDidLayoutSubviews或ViewDidDisplay代码基本上是空的,没有发生视觉篡改。因此,它不会发生在那里。

正如F1ank3r在一篇评论中所指出的,当我从UINavigationBar和UIToolbar中删除半透明设置,然后将AppDelegate中的背景颜色更改为不同的颜色时,它们都具有相同的颜色,即使在查看模式并将其缩小后也是如此

我仍然想知道最初的小故障,没有内容改变,没有重新对齐,为什么突然改变了UINavigationBar的半透明颜色


无论哪种方式,因为我不“需要”在这里的酒吧是半透明的,我可以通过一个静态的背景色。不过我还在想。感谢F1ank3r的提示。

您是否可以通过interface builder对模式视图中的导航栏进行任何更改?模式是一个简单的UIViewController,所有这些都是推断出来的。由于UINavigationBar是模态的,因此无法获取该UINavigationBar。导航栏在任何视图控制器中是否都是半透明的?是的,在iOS7上默认为半透明,为什么?根据此UINavigationBar设置,在呈现模态视图控制器后可能会丢失。也许您可以在隐藏模式时重置UINavigationBar设置。检查第二个答案的评论。不,问题,它看起来像是我遇到的类似问题,并通过移除半透明来修复。但我不知道为什么会这样。