Я показываю 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
.