MKMapview影响UINavigationBar和TabBar外观

Dea*_*ids 7 iphone mkmapview ios uiappearance

我在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];
Run Code Online (Sandbox Code Playgroud)

我在下一行休息了一下.检查栏,颜色似乎设置.

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

我发现的更多项目.颜色没有变化.可见性似乎是.然而,读取颜色和条形的alpha将返回1.0.

所以颜色是正确的.

半透明是肯定的.

Alpha是1.0.

然而,酒吧是完全清晰,没有颜色,没有色调.

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

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

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

Dea*_*ids 8

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

我想出的是一系列设定

self.navigationController.navigationBar.translucent = NO;
self.tabBarController.tabBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)

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

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

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