Как правильно управлять statusBarStyle в Swift? - PullRequest
1 голос
/ 03 марта 2020

Я попытался добавить ключ UIViewControllerBasedStatusBarAppearance в значение true внутри файла info.plist, а затем добавил приведенный ниже код в класс UINavigationController, который содержит несколько классов UIViewController.

class HomeNavigationController: UINavigationController {

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

Но это не работает.

Я также пытался установить для свойства barStyle navigationBar значение .black, но это тоже не сработало.

Также посмотрел до { ссылка }, но это тоже не помогло.

Обратите внимание: для UIViewController классов, не встроенных ни в какие UINavigationController, если я использую вычисляемое свойство preferredStatusBarStyle, то это работает .

Ответы [ 2 ]

3 голосов
/ 03 марта 2020

Попробуйте в viewDidAppear() из UINavigationController класса:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationController?.navigationBar.barStyle = .black
}

Также добавьте (в том же классе, что и выше):

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
1 голос
/ 03 марта 2020

@ Anuranjan Bose Попробуйте, по вашему мнению, загрузил,

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