Ваш UINavigationController - тот, который устанавливает предпочитаемый StatusBarColor.Бьюсь об заклад, если вы попытаетесь представить этот VC вместо нажатия на контроллер навигации, вы увидите стиль световой строки состояния.
Что вы, вероятно, захотите сделать вместо этого, это реализовать собственный контроллер навигации и переопределить предпочтительный статусстиль бара.
class CustomNavController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent;
}
}
РЕДАКТИРОВАТЬ:
Исходя из комментариев, вы, вероятно, захотите сделать, установить предпочтительный цвет строки состояния, какой бы ViewController был самым верхним из UINavigationController.Вот расширение, которое делает это, с этим расширением вам больше не нужен класс CustomNavController, описанный выше, просто используется обычный UINavigationController.Вам также нужно будет переопределить предпочтительный стиль строки состояния в каждом из ваших контроллеров представления.Отдайте должное этому вопросу SO, см. Здесь для более подробных обсуждений стиля стиля и навигационных контроллеров: favourStatusBarStyle не вызывается
extension UINavigationController {
open override var childViewControllerForStatusBarStyle: UIViewController? {
return self.topViewController
}
open override var childViewControllerForStatusBarHidden: UIViewController? {
return self.topViewController
}
}