Swift: панель навигации скрывается, хотя я вызываю нужный код? - PullRequest
0 голосов
/ 28 октября 2018

У меня есть два VC с одним и тем же контроллером навигации, и на моем первом VC панель навигации должна быть скрыта, а вторая - большой.Два VC связаны через толчок.Но если я нажимаю кнопку «Назад», которая появляется после перехода, то снова появляется панель навигации, хотя при первом появлении ВК нет панели навигации.Мой код на первом ВК:

override func viewDidLoad() {
    super.viewDidLoad()
    navigationController!.navigationBar.isHidden = true
}

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Вы должны скрыть панель навигации внутри функции viewWillAppear и показать ее внутри функции viewWillDisappear вашего первого VC, чтобы она не скрывалась для всех VC.Просто используйте следующий код, он будет работать:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // Hide the navigation bar on the this view controller
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    // Show the navigation bar on other view controllers
    navigationController?.setNavigationBarHidden(false, animated: animated)
}
0 голосов
/ 28 октября 2018

Метод viewDidLoad () вызывается только один раз, поэтому только строка кода в методе viewWillAppear:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    navigationController!.navigationBar.isHidden = true
}
...