В моем текущем 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 из значения по умолчанию, чтобы фактически получить цвет по умолчанию?