MKMapview影响UINavigationBar和TabBar外观

我在UIView中有一个MKMapView。 iOS7之前从未出现任何问题。 UITabbar和UINavigationBars的颜色由UIAppearance协议设置。

出于某种原因,无论何时启动MKMapView,我的所有标签栏和导航栏都会重置,忽略我的外观类的barTintColor设置。 来自UIAppearance的所有其他设置似乎仍然保留,例如title属性和barItem属性。 只有barTintColor会消失。

还有一件事。 这只发生在iPhone 4和iPhone4S上,而不是iPhone 5上。它也不会发生在模拟器上。 根本不是iOS6中的问题。

我找不到重置的其他原因。 我经历了几乎关于所有事情的评论并且无论如何都没有效果。

如果我删除MKMapView控件,则不重置颜色。 如果我继续用MKMapView呈现另一个完全不同的视图,颜色也会重置。

我正在寻找还有什么可以检查的想法,什么样的设置或方法可能会导致这种行为。 给我一些消除的东西,我被卡住了。

附加信息:

现在想到这可能是一个错误。 我在ViewDidLoad中用一行代码将导航栏的颜色硬编码为任意颜色,只是为了看看发生了什么。

UINavigationBar *bar = self.navigationController.navigationBar; [bar setBarTintColor = [UIColor GreenColor]; 

我在下一行rest了一下。 检查栏,颜色似乎设置。

在iPhone4或4S上,条形不会变为绿色。 在iPhone5和模拟器上,条形变为绿色。

我发现的更多物品。 颜色没有变化。 可见性似乎是。 然而,读取颜色和条形的alpha会返回1.0。

所以颜色是正确的。

半透明是肯定的。

Alpha是1.0。

但酒吧完全清晰,没有颜色,没有色调。

我想我会将此正式提交为一个错误。 我做了一个只有MKMapview的测试viewController。 没有代码,没有代表,没有注释。 提出代替我适当的控制者。 同样的事情发生了。

我现在需要的是一种解决方法。 我只是不知道改变了什么。 当我检查导航栏的属性时,一切都是正确的。 色调,半透明,条纹色调,阿尔法值。 据我所知,这件事应该按照预期显示。

谁能告诉我其他属性或方法可以使导航栏的背景完全透明?

经过一些搜索后,我发现开发人员论坛中有一些相关的主题,这个问题已经有一段时间了。 我希望我会收到回复,我的错误报告是一个骗局。 与此同时,我相信我已经提出了一个解决方法。

我想出的是一系列设定

 self.navigationController.navigationBar.translucent = NO; self.tabBarController.tabBar.translucent = NO; 

当加载包含MKMapView的视图,然后在viewDidAppear中将其设置为YES时。 我在viewWillDisappear上再次设置为NO。 然后返回的viewController必须在其viewDidAppear中再次重置为半透明。

我在View Controllers中使用了一系列带有地图的NSNotificationpost。 我将我的导航控制器和标签栏子类化,使他们听取通知并通过切换他们自己的条形半透明属性进行响应。

管理完成它。 使用少量代码,但没有充分理由这是一项非常多的活动。 更希望看到这个固定的ASAP。