Скрыть строку состояния на iOS Swift - PullRequest
0 голосов
/ 18 июня 2020

В моем приложении для определенного экрана мне нужно скрыть строку состояния. Моя иерархия экранов:

MainScreen -> ScreenA -> ScreenB -> Screenc

В моем экране c Мне нужно скрыть строку состояния. Я делаю вот так:

 override var prefersStatusBarHidden: Bool {
        return true
    }

Работает нормально. Но когда я возвращаю sh обратно из Screenc, моя ScreenB, ScreenA строка состояния и моя панель навигации перекрываются. Как мои ScreenB, ScreenA title, right bar button, и все они перекрываются строкой состояния. Но моя строка состояния также отображается в ScreenB, ScreenA.

Не знаю, почему это происходит. В моем файле plist есть:

View controller-based status bar appearance : YES

Я не могу изменить это на НЕТ. Потому что в моем приложении я использую фиксацию портрета для конкретного контроллера просмотра.

Любое решение, как исправить эти проблемы?

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Что вы можете сделать, так это показать и скрыть в «Появление и исчезновение»

   override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.isNavigationBarHidden = true
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        navigationController?.isNavigationBarHidden = false
    }
0 голосов
/ 18 июня 2020

В функции viewDidLoad () добавьте

self.navigationController?.isNavigationBarHidden = true

И в вашем предыдущем ViewController в методе viewDidAppear добавьте

self.navigationController?.isNavigationBarHidden = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...