Как скрыть UINavigationBar при перемещении через контроллеры? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть приложение, которое требует четкой навигационной панели в первом ViewController и белого навигационного бара в секунду.

Проблема заключается в том, что при перемещении между контроллерами (UIBarButton) эта ужасная белая полоса остается. Что не так?

//for first ViewController to hide navigationBar, second is the same, but "true" and .white

  navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
  navigationController?.navigationBar.isTranslucent = false
  navigationController?.navigationBar.backgroundColor = .clear
  navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")

При первом запуске все работает нормально, но при возврате с кнопкой:

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Не изменяйте первую панель навигации View контроллера. Добавьте изменения и изменения в AppDelegate , которые вы хотите включить из второго контроллера представления. В первом контроллере представления скрыть панель навигации в viewWillAppear и отобразить снова в viewWillDisappear .

В контроллере первого вида

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

override func viewWillDisappear(_ animated: Bool) {
    navigationController?.setNavigationBarHidden(false, animated: true)
}
0 голосов
/ 12 апреля 2020

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

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

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

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