是否有人发现如果您更改带有 MKMapView 的视图上的导航栏色调颜色,您无法更改它?例如,假设您在 AppDelegate 中设置以下代码,将颜色更改为绿色:
[[UINavigationBar appearance] setBarTintColor:[UIColor greenColor]];
任何带有 MKMapView 的 uiviewcontroller 条纹色调都保持黑色,无论我做什么,我都无法改变它。所有其他uiview控制器都没有任何问题。是的,我已经尝试通过将代码直接放在univiewcontroller .m文件中来强制进行更改,但仍然不会更改。
其他人有这个问题并且能够修复它吗?
答案 0 :(得分:4)
这是我最终的解决方法。将它们放在所有视图控制器上:
- (void)viewWillAppear:(BOOL)animated
{
self.navigationController.navigationBar.translucent = NO;
}
- (void)viewDidAppear:(BOOL)animated
{
self.navigationController.navigationBar.translucent = YES;
}
我将补丁(swizzling)加入到UIViewControllers中,就是这样。如果你有任何UIViewController的子类覆盖viewWillAppear
或viewDidAppear
,那么请确保你也发送超类这些消息。
注意:但是,当半透明在你眼前踢时,这会产生短暂闪光的副作用。