1

有没有人发现,如果您使用MKMapView更改视图上的导航栏色调颜色,您将无法更改它?例如,假设您在AppDelegate中设置以下代码以将颜色更改为绿色:

[[UINavigationBar appearance] setBarTintColor:[UIColor greenColor]];

任何具有MKMapView的uiviewcontroller条形颜色保持黑色,无论我做什么,我都无法更改它。所有其他 uiviewcontrollers 更改没有问题。是的,我已经尝试通过将代码直接放在 univiewcontroller .m 文件中来强制更改,但仍然不会更改。

其他人有这个问题并且能够解决它吗?

4

1 回答 1

4

这是我最终得到的解决方法。将这些放在所有视图控制器上:

- (void)viewWillAppear:(BOOL)animated
{
    self.navigationController.navigationBar.translucent = NO;
}

- (void)viewDidAppear:(BOOL)animated
{
    self.navigationController.navigationBar.translucent = YES;
}

我将它们修补(调配)到 UIViewControllers 中,仅此而已。如果您有任何覆盖viewWillAppearor的 UIViewController 子类,viewDidAppear请确保您也向超类发送这些消息。

注意:不过,当半透明出现在您的眼前时,这会产生短暂闪光的副作用。

于 2013-10-22T07:24:09.710 回答