Установка стиля statusBar не работает Objective-C - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь изменить свой стиль строки состояния (более конкретно, цвет строки состояния) в зависимости от того, какой viewController активен через это:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

Но это не работает.Скорее, он делает всю панель навигации черной (а не только строку состояния).Также не работает следующее:

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

Но, похоже, это работает только тогда, когда viewController не встроен в navController (когда я скрываю navBar, он работает!).Моя иерархия viewController выглядит следующим образом:

tabBarController -> navigationControllers -> viewController

Также: установка «Просмотр внешнего вида строки состояния на основе контроллера» на YES & NO не имеет значения.

Рад за любую помощь!

1 Ответ

0 голосов
/ 19 июня 2019

Вы можете попробовать следующее. сохраните это на вашем ViewController

-(UIStatusBarStyle)preferredStatusBarStyle{    
    // Add If/else conditions based on which style required on which condition
    return UIStatusBarStyleLightContent;
}

Называйте этот код, когда хотите изменить стиль строки состояния.

[self preferredStatusBarStyle];
[self setNeedsStatusBarAppearanceUpdate];
...