Неправильный цвет строки состояния в 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 }

Другие вопросы по тегам