Swift UIApplication.setStatusBarStyle не работает
Вот моя реализация в подклассе UIViewController
:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
}
Я попытался поместить его в код инициализации AppDelegate (используя переданный в экземпляре UIApplication), однако строка состояния все еще черная.
Это ошибка в iOS 8 или я делаю это неправильно?
Примечание: я могу нарушать чей-то закон здесь, обсуждая ios 8. Это общая проблема, которая, когда скомпилировано, не работает и для ios 7.
Обновление: все еще не работает, даже со значением в Info.plist и кодом в - didFinishLaunchingWithOptions
2 ответа
Решение
Вы действительно должны реализовать preferredStatusBarStyle
на вашем контроллере просмотра:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
- Перейти к файлу Info.plist
- Наведите указатель мыши на одну из этих строк, и появятся кнопки (+) и (-).
- Нажмите кнопку "плюс", чтобы добавить новый ключ. Введите начальный с заглавной буквы V, и автоматически первым выбором будет " Просмотр внешнего вида строки состояния на основе контроллера".
- Добавьте это как КЛЮЧ.
- Установите ЗНАЧЕНИЕ на "НЕТ"
- Перейти к вам AppDelegate.swift
- Добавьте следующий код внутри метода
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
application.setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
return true
}
- СДЕЛАННЫЙ! Запустите ваше приложение, и ваша строка состояния теперь БЕЛАЯ!