Панель навигации появляется при нажатии на вид - PullRequest
8 голосов
/ 25 января 2020

Я прилагаю видео своей проблемы. Когда я щелкаю в любом месте на панели навигации viewcontroller, появляется

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(true, animated: true)
    self.navigationController?.isNavigationBarHidden = true
    self.navigationController?.hidesBarsOnTap = true
}

Приведенный выше код добавляется на viewwilla, когда он работает изначально, но когда я щелкаю в любом месте на экране, появляется панель навигации.

Ответы [ 5 ]

3 голосов
/ 31 января 2020

Наконец-то это решение работает на меня

self.navigationController?.navigationBar.transform = CGAffineTransform(translationX: 0, y: -200)
0 голосов
/ 31 января 2020

ПОПРОБУЙТЕ НИЖЕ

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

override func viewWillDisappear(_: Bool) {
    super.viewWillDisappear(true)
    navigationItem.title = ""
}
0 голосов
/ 28 января 2020

Попробуйте с глобальной очередью

DispatchQueue.global().async {
     navigationController?.setNavigationBarHidden(true, animated: animated)
}

или просто добавьте этот код в viewDidAppear

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

, если эти два не сработают, проверьте может быть добавлен код для навигации

0 голосов
/ 30 января 2020

Проверьте свои основные свойства раскадровки UINavigationController в раскадровке и снимите флажки «Скрыть панели при вертикальной компактности», «Скрыть панели при нажатии». это приводит к появлению панели навигации при нажатии на представление.

, если вы создаете UINavigationController программно, затем используйте следующий код.

UINavigationController().hidesBarsWhenVerticallyCompact = false
UINavigationController().hidesBarsOnTap = false

enter image description here

0 голосов
/ 28 января 2020

Попробуйте Ниже кода в ViewController вы хотите скрыть NavigationBar

DispatchQueue.main.async {
    self.navigationController?.setNavigationBarHidden(true, animated: false)
    self.view.isUserInteractionEnabled = true
    //Below code conflicts with the hidden `NavigationBar` and make it visible on tap so set it false as below
    self.navigationController?.hidesBarsOnTap = false
}

И ДОБАВИТЬ Ниже кода в Другое ViewController, который вы хотите покажите Navigationbar (Не в каждом другом ViewController, просто в ViewController вы пу sh или выскочит из этого ViewController)

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