Я показываю UIWindow над UIStatusBar, по умолчанию UIStatusBarStyle установлен на UIStatusBarStyleLightContent, но когда я показываю UIWindow, UIStatusBarStyle переключается в черный стиль.
UIStatusBarStyle изменяется после отображения UIWindow над UIStatusBar
Ответ 1
Я столкнулся с этой темой, борясь с той же проблемой. Что вам нужно сделать, так это создать новый контроллер представления и установить его как контроллер корневого представления вашего UIWindow (то есть UIWindow, который вы показываете над другим видом). Затем в этом новом контроллере представления реализуем метод preferredStatusBarStyle следующим образом:
- (UIStatusBarStyle) preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
В качестве альтернативы вы можете установить свойство View View на панели управления View View в Info.plist равным NO и внедрить метод [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent], предложенный Azabella. Однако это приведет к тому, что строка состояния всех ваших просмотров станет белой. Если это не проблема, тогда нет необходимости создавать отдельный контроллер просмотра только для установки метода preferredStatusBarStyle.
Ответ 2
Вы установили свойство View View на панели управления View View в свой файлAppName-Info.plist равным NO?
Ответ 3
Добавьте это так, когда появится представление, оно установит цвет/стиль
-(void)viewDidAppear:(BOOL)animated {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
Ответ 4
Это была довольно тривиальная проблема, и я решил, что для параметра modalPresentationCapturesStatusBarAppearance установлено modalPresentationCapturesStatusBarAppearance true.