Неправильный цвет строки состояния в iOS 9 iPad Slide Over и Split View
Мое приложение использует белую строку состояния. Когда я запускаю приложение с домашнего экрана (т.е. приложение переходит в полноэкранный режим), это работает нормально.
Если, пока мое приложение все еще находится в полноэкранном режиме, я перемещаю его поверх второго приложения (например, "Календарь"), строка состояния остается белой. Если я затем использую разделенный вид между моим приложением и календарем, строка состояния остается белой. Это все работает правильно.
Однако, если первым полноэкранным приложением является Календарь (или любое другое, конечно), и я использую Slide Over, чтобы увидеть свое приложение, строка состояния становится черной. Если я продолжу и использую разделенный вид, строка состояния по-прежнему отображается черным цветом. Наконец, если я перетащу свое приложение полностью влево, чтобы оно стало полноэкранным, строка состояния правильно станет белой.
Подводя итог: при наличии другого приложения в полноэкранном режиме и использовании Slide Over или Split View для просмотра моего приложения строка состояния отображается с использованием неправильного цвета.
Это ошибка iOS 9 или я что-то упустил? Я не смог найти ничего в документах, в которых указано, что где-то еще должен быть объявлен цвет строки состояния для Slide Over/Split View.
Спасибо!
2 ответа
Я исправил эту проблему, создав новый класс, унаследованный от UISplitViewController, и назначил его в качестве класса для вашего контроллера разделенного представления. В этом классе переопределите метод предпочитаемый метод StatusBarStyle следующим образом
override func preferredStatusBarStyle()-> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
На самом деле не понимаю, почему это работает, а изменение значения в раскадровке не работает.
Версия Swift 3:
переопределить переменную varStatusBarStyle: UIStatusBarStyle { return .lightContent }