Как мне изменить цвет UIStatusBar на .lightContent в MoreTabBarController - PullRequest
1 голос
/ 24 октября 2019

У меня есть UITabBarController с более чем 5 UIViewControllers. Я установил значение в моем info.plist Я установил значение для ViewController на основе строки состояния на YES.

enter image description here

Всеиз UIViewControllers имеют значения

UIApplication.shared.statusBarUIView?.backgroundColor = customColor
self.setNeedsStatusBarAppearanceUpdate()

в viewDidLoad с customColor, являющимся темным оттенком синего. Я также переопределяю переменную ПредпочитаемыйСтатусБарСтиль для содержимого light.

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Все контроллеры UIViewController отображают строку состояния lightContent. Я пробовал то же самое в классе MoreTabBarController, но это не работает. Я предполагаю, что причина в том, что это не UIViewController, а скорее UITabBarController.

enter image description here

Как изменить цвет строки состояния на светлыйсодержание в MoreTabBarController?

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Откройте опцию настроек проекта, вы можете изменить стиль строки состояния:

enter image description here

Далее вернитесь к раскадровке, выберите ViewController и вв меню редактора выберите Embedin NavigationController. Выберите панель навигации и в инспекторе атрибутов установите цвет «Оттенок панели» на красный. Создайте и запустите проект. Содержимое строки состояния снова становится темным, что является значением по умолчанию. Причина этого заключается в том, что iOS запросила стиль строки состояния контроллера навигации вместо содержимого ViewController. Чтобы изменить стиль всех контроллеров навигации внутри приложения, измените следующий метод в файле AppDelegate.swift.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    UINavigationBar.appearance().barStyle = .blackOpaque
    return true
    }
0 голосов
/ 24 октября 2019

Используйте UIApplication.shared.statusBarStyle = .lightContent в didFinishLaunchingWithOptions, а затем используйте ключ View controller-based status bar appearance и установите No для его логического значения в .info plist. Его изменение цвета строки состояния на светлое содержимое.

...