У меня довольно простая настройка:
В корневом контроллере вида скрыта панель навигации, а в дополнительном контроллере вида (Settings
) панель навигации показана с большим заголовком. Чтобы скрыть и показать панель навигации, я делаю это:
В контроллере корневого представления:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.setNavigationBarHidden(false, animated: animated)
}
Вот и все. И это прекрасно работает , за исключением для этого особого случая: когда я перемещаюсь вправо, как будто я отклоняю контроллер вторичного вида, но затем поворачиваюсь назад влево, чтобы отменить, панель навигации мигает, пока контроллер вторичного представления анимирует назад, поскольку это должен. Вот как это выглядит в slo-mo:
То же самое происходит, если я перемещаю панель навигации, скрывающуюся в дополнительном контроллере вида viewWillAppear(_:)
.
Как я могу остановить перепрошивку и заставить это работать правильно?