Установка стиля statusBar не работает Objective-C

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

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

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

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

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

tabBarController -> navigationControllers -> viewController

Кроме того: установка «Просмотр внешнего вида строки состояния на основе контроллера» на ДА и НЕТ не имеет значения.

Я рад любой помощи!


person Besfort Abazi    schedule 18.06.2019    source источник
comment
preferredStatusBarStyle изменяет цвет текста строки состояния. UIStatusBarStyleLightContent покажет белый текст в строке состояния. Каков фактический результат, который вы хотите?   -  person rmaddy    schedule 18.06.2019
comment
Это именно то, чего я хочу. Кроме того, он должен меняться между разными viewControllers. Я читал в других темах, что это не должно работать для VC внутри navigationControllers, но альтернатива (путем установки стиля navBar) тоже не работает.   -  person Besfort Abazi    schedule 19.06.2019


Ответы (1)


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

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

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

[self preferredStatusBarStyle];
[self setNeedsStatusBarAppearanceUpdate];
person S Chauhan    schedule 19.06.2019
comment
К сожалению, это ничего не меняет... Я поместил его в viewWillAppear, viewDidAppear и viewDidLoad. Ничего не сработало. - person Besfort Abazi; 19.06.2019
comment
Можете ли вы поделиться примером кода, который не работает? - person S Chauhan; 20.06.2019