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