У меня есть tabBarApp,
Вкладка 1 представляет собой NavigationController
и включает строку состояния
2 - это простой viewCOntroller
, где я добавил NavigationBar
(он включает строку состояния)
На вкладке 3 нет строки состояния
Я изменил свой файл Plist с viewControllerBasedStatusBarAppearence
на YES
, потому что мне нужно, чтобы каждая вкладка по-разному обрабатывалась со строкой состояния (она должна быть на 1-й и 2-й вкладках, но 3-е должно быть спрятано )
Я написал это внутри первых двух контроллеров...
override funct preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.LightContent }
override func prefersStatusBarHidden() -> Bool { return false }
И я написал это внутри третьего контроллера
override func prefersStatusBarHidden() -> Bool { return true }
Но это не работает. у третьего контроллера нет строки состояния, как я ожидаю. 1-й контроллер имеет строку состояния того же цвета, что и моя навигационная панель, но 2-й контроллер не получает цвет навигационной панели (вероятно, потому что это не навигационный контроллер, а просто navBar)
Итак, как я могу настроить панель так, чтобы она имела цвет, который я хочу, не получая его от NavBarController
? и как я могу настроить элементы в строке состояния (значки...), чтобы они имели белый цвет вместо черного? (текст на панели навигации белый)
2 ответа
Если вы хотите изменить цвет содержимого в строке состояния (без использования автоматического материала UIViewController/UINavigation Controller) (так что ваш контроллер 2 представлений), вы можете использовать setStatusBarStyle(_ statusBarStyle: UIStatusBarStyle, анимированный анимированный: Bool) на UIApplication . Поэтому поместите следующее в viewWillAppear (или там, где это имеет смысл/работает лучше всего) в вашем контроллере с двумя представлениями:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
setStatusBarStyle
В настоящее время устарело в iOS 9, и текущий способ изменения стиля строки состояния:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.Default
}
Изменение .Default
на .LightContent
для света
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.