1

MKMapViewを使用してビューのナビゲーション バーの色合いを変更すると、変更できないことに気付いた人はいますか? たとえば、AppDelegateで次のコードを設定して、色を緑に変更するとし ます。

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

MKMapViewを持つuiviewcontrollerは、バーの色合いが黒のままで、何をしても変更できません。他のすべての uiviewcontrollers は問題なく変更されます。はい、コードを univiewcontroller .m ファイルに直接配置して変更を強制しようとしましたが、それでも変更されません。

他の誰かがこの問題を抱えていて、それを修正できましたか?

4

1 に答える 1

4

これが最終的な回避策です。これらをすべてのView Controllerに配置します。

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

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

これらを UIViewControllersにモンキー パッチ (スウィズリング) すると、それだけです。viewWillAppearまたはをオーバーライドする UIViewController のサブクラスがある場合はviewDidAppear、スーパークラスにもこれらのメッセージを送信するようにしてください。

注: ただし、これには、透過性が目の前でキックしているときに短い閃光という副作用があります。

于 2013-10-22T07:24:09.710 に答える