Как изменить UIViewControllerBasedStatusBarAppearance на YES/NO программно в iOS 7?
Мое приложение имеет темный фон, но в iOS 7 панель состояния стала прозрачной. Поэтому я ничего не вижу там, только зеленый индикатор батареи в углу. Как изменить цвет текста строки состояния на зеленый или оранжевый, как на главном экране?
Я знаю о
-
Установите UIViewControllerBasedStatusBarAppearance
на YES
в plist
-
В viewDidLoad
выполните a [self setNeedsStatusBarAppearanceUpdate];
-
Добавьте следующий метод:
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
Как я могу программно изменить UIViewControllerBasedStatusBarAppearance
?
Спасибо заранее...
Ответы
Ответ 1
В Info.plist установите "Просмотр состояния панели управления на основе контроллера" как НЕТ.
то добавьте это в свой класс appdelegate.m в метод dofinishlaunchingwithoptions.
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
это работает для ios 7.
Ответ 2
Как упоминают другие, добавьте "Просмотр состояния панели управления на основе контроллера" в вашем приложении info.plist и установите для него тип: Логическое значение и значение: НЕТ
Для справки:
![screenshot]()
В iOS 9
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
метод устарел.
Итак, вы можете использовать это:
application.statusBarStyle = UIStatusBarStyleLightContent;
добавить эту строку кода в метод
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
который присутствует в файле appDelegate.m. Это изменит цвет текста в строке состояния вашего приложения.
Итак, если у вас есть экран с фоном, который может быть темным или светлым, то на этом экране вы можете отображать цвет строки состояния, используя:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
Надеюсь, что это поможет.