Рассмотрим следующую схему:
- У вас есть простое приложение с одним подклассом
UINavigationController
и одним подклассомUIViewController
. - UINavigationController переопределяет метод
preferredStatusBarStyle()
и возвращаетUIStatusBarStyle.LightContent
- UIViewController переопределяет метод
prefersStatusBarHidden()
и возвращаетtrue
В iOS 8.0–8.2, когда другой UINavigationController
(с другим UIViewController, который ничего не отменяет) представлен с modalPresentationStyle
, установленным в UIModalPresentationStyle.OverCurrentContext
, вновь представленный контроллер наследует внешний вид и видимость строки состояния.
Но в iOS 8.3 точно такая же ситуация - недавно представленный контроллер не наследует внешний вид и видимость строки состояния.
Другой пример - представить экземпляр UIImagePickerController
- то же самое происходит и с внешним видом строки состояния.
Вопросы следующие:
- Почему в iOS 8.3 недавно представленный контроллер не наследует внешний вид строки состояния?
- Что было изменено (мне не удалось найти какой-либо значимой ссылки в различиях API iOS 8.2–8.3 по этому поводу)?
- Есть ли какое-нибудь элегантное решение для этого, вместо того, чтобы везде переопределять методы внешнего вида и видимости?