Как изменить цвет строки состояния с помощью кнопки?


Я пытаюсь реализовать кнопку, которая меняет фон моего приложения с белого на черный вместе с цветом строки состояния. Прямо сейчас у меня есть

@IBAction func buttonTapped(_ sender: Any) {
        self.view.backgroundColor = UIColor.black
        UIApplication.shared.statusBarStyle = .lightContent
}

Это, кажется, не работает. Кто-нибудь знает способ изменения цвета шрифта строки состояния без перезагрузки всего представления?

1 3

1 ответ:

Если вы хотите задать стиль строки состояния, уровень приложения, то установите UIViewControllerBasedStatusBarAppearance в NO в вашем файле .plist.

Если вы хотите задать стиль строки состояния, на уровне контроллера вида выполните следующие действия:

  1. установите UIViewControllerBasedStatusBarAppearance в YES в файле .plist, Если вам нужно задать стиль строки состояния только на уровне UIViewController.
  2. В функции viewDidLoad добавить - setNeedsStatusBarAppearanceUpdate

  3. Переопределить preferredStatusBarStyle в вашем представлении контроллер.

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Заданное значение .plist в соответствии с уровнем настройки стиля строки состояния. Введите описание изображения здесь