Как изменить Statusbar на Modal Views iOS 6
У меня следующее созвездие:
Основной вид (пользовательский UIViewController, никакой навигационный контроллер или панель навигации), содержащая кнопку, которая последовательно переходит ко второму контроллеру табличного представления, встроенному в контроллер навигации:
MainView → Контроллер навигации → TableView
В MainView строка состояния черная (без изменений в iOS 6 - даже если для строки состояния установлено значение по умолчанию)
В TableViewController строка состояния должна иметь стиль по умолчанию (серый в iOS 5, синий тонирован из-за панели навигации в iOS 6).
В iOS 5 это было легко с помощью следующих строк кода в TableViewController:
if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarStyle:)]) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}
Выполняется это при уведомлении iOS 6. Как я могу это сделать? Я попробовал все возможные настройки строки состояния в сводке проекта и в plist (как описано здесь: qaru.site/info/236588/...)
Кроме того, в Storyboard все выглядит отлично. Запуск приложения в симуляторе или на устройстве выглядит иначе:
![Storyboard]()
![Simulator]()
Ответы
Ответ 1
попробуйте этот "взломать":
Вы должны добавить панель навигации к своему первому контроллеру. Тогда у вас есть две возможности.
1) Установите для альфа-значения навигационной панели значение 0
или
2) Установите y-позицию панели на -43px (смотрите здесь: http://moduscreate.com/tinting-your-status-bar-in-ios6-and-phonegap/)
EDIT:
Чтобы получить правильные цвета, вы должны установить tintColor невидимого UINavigationBar. Поэтому по умолчанию установите его черным. В действии кнопки вы должны установить tintColor в свой navigationController.navigationBar.tintColor. При нажатии кнопки закрытия вы должны вернуть его в [UIColor blackColor].
Ответ 2
Первый контроллер представления должен иметь навигационный контроллер/панель для работы функции. Строка состояния не изменяет цвет во всем приложении (в iOS6), но приспосабливается к цвету навигационной панели вашего начального вида. Если ваш стартовый вид не содержит навигационной панели, строка состояния не адаптирует цвет.! (См. http://i.stack.imgur.com/n9ubK.png)
Ответ 3
Вам не нужно устанавливать стиль для панели навигации в ваш диспетчер tableview.
Попробуйте этот подход.
1. Добавьте контроллер навигации в основной режим.
2. Установите его свойство в "Да".
3. Когда вы показываете tableviewcontroller, установите свойство навигационной панели, скрытое в No
Контроллер навигации → bar hidden = yes → MainView → bar hidden = no → TableView