UINavigationBar цвет неожиданно меняется - PullRequest
2 голосов
/ 20 декабря 2009

В моем текущем UINavigationController стек viewControllers выглядит следующим образом. 1 -> 2 -> 3. Однако, прежде чем перейти от 2-го к 3-му контроллеру, я сначала вставляю 2-й, чтобы, когда 3-й контроллер выдвинут, 1-й контроллер был сверху.

[self.navigationController popViewControllerAnimated:NO];
[self.navigationController pushViewController:controller animated:YES ] ;

Но каким-то образом это меняет цвет панели навигации с исходного синего цвета по умолчанию на черный стиль. Явная установка barStyle в UIBarStyleDefault в viewWillAppear или viewWillDisappear нового контроллера не имеет никакого эффекта. Что странно, если я вообще установлю barStyle, даже переход 1 -> 2 приведет к изменению цвета полосы на черный.

К концу написания этого поста я понял, что следующий код исправил это.

navBar.barStyle = UIBarStyleDefault-1;

Зачем мне нужно вычесть 1 из значения по умолчанию, чтобы фактически получить цвет по умолчанию?

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Я тоже столкнулся с той же проблемой. У меня нет официального ответа, но я исправил его по-своему:

-(void)viewWillAppear:(BOOL)animated { 
UIColor *navColor = [[UIColor alloc]initWithRed:0.742778 green:0.0181208 blue:0.0271147 alpha:1];
[self.navigationController.navigationBar setTintColor:navColor];}

Хотел бы я, чтобы кто-то мог предложить лучший ответ.

1 голос
/ 30 ноября 2010

Я бы не совал второй, просто нажмите 3-й. И когда вы отклоните 3-е использование

[self.parentViewController.parentViewController popViewControllerAnimated:YES];

Это для меня возвращает назад и очищает стек и оставляет меня на контроллере 1 без отображения контроллера 2 со всеми обычными атрибутами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...