Невозможно изменить цвет оттенка панели навигации iOS7 с помощью MapView

Кто-нибудь обнаружил, что если вы измените цвет оттенка панели навигации в представлении с помощью MKMapView, вы не сможете его изменить? Например, предположим, что вы установили следующий код в своем AppDelegate, чтобы изменить цвет на зеленый:

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

Любой uiviewcontroller с MKMapView, цвет оттенка полосы остается черным, и что бы я ни делал, я не могу его изменить. Все остальные uiviewcontrollers меняются без проблем. И да, я уже пытался принудительно изменить, поместив код непосредственно в файл univiewcontroller .m, но все равно не изменится.

Кто-нибудь еще имеет эту проблему и смог ее исправить?


person Jon    schedule 01.10.2013    source источник
comment
Похоже, ваш вид карты может не распространяться под панелью навигации. Выложить код макета?   -  person Noah Witherspoon    schedule 01.10.2013


Ответы (1)


Это обходной путь, с которым я в конечном итоге. Поместите их на все контроллеры представления:

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

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

Патч для обезьян (прокрутить) их в UIViewControllers и все. Если у вас есть какой-либо подкласс UIViewController, который переопределяет viewWillAppear или viewDidAppear, просто убедитесь, что вы также отправляете суперклассу эти сообщения.

Примечание. Это имеет побочный эффект в виде короткой вспышки, когда полупрозрачность бьет перед вашим глазом.

person huggie    schedule 22.10.2013