Как мы можем установить стиль Light Content в строке состояния в iOS 9 для всего приложения?
Я хочу применить стиль Light Content для всего приложения.
Следующий метод устарел в iOS 9 без метода замены.
-setStatusBarStyle: анимированные:
Устанавливает стиль строки состояния, необязательно оживляя переход к новому стилю.
Работает в AppDelegate
как:
Swift 1.2 Код:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Но когда я обновляю свой проект до iOS 9/Swift 2, они дают мне предупреждающее сообщение о:
<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Итак, согласно решению яблочный форум и из этого ответа CGContextSaveGState: недопустимый контекст 0x0 Ошибка только на устройстве
Итак, я удалил свойство UIViewControllerBasedStatusBarAppearance
из файла info.plist
в соответствии с решением.
Теперь ситуация такова, что Как мы можем установить стиль Light Content в строке состояния в iOS 9 для всего приложения?
Из форума:
![введите описание изображения здесь]()
Я не хочу устанавливать Light Content для каждого вида.
Любые предложения?
Objective-C должен иметь такую же проблему.
Ответы
Ответ 1
Вы можете сэкономить много работы, используя UINavigationController и настроив свою панель навигации barStyle
на .Black
. Вы должны сделать это только один раз; вы можете сделать это в редакторе раскадровки.
Это автоматически превратит ваш стиль строки состояния в .LightContent
, пока этот UINavigationController находится в команде.
Ответ 2
Вы также можете использовать:
UIApplication.shared.statusBarStyle =.lightContent. Он также работает в swift3.