Неудобная анимация контроллера поиска при развертывании для просмотра со скрытой панелью навигации

#ios #swift #uinavigationcontroller #uinavigationbar #uisearchcontroller

#iOS #swift #uinavigationcontroller #uinavigationbar #uisearchcontroller

Вопрос:

Итак, я следую этому руководству по UISearchController и немного изменил его. Я создал RedViewController перед SearchViewController , в котором панель навигации скрыта. Как вы можете видеть на анимации, разматывание от SearchViewController к RedViewController не относится к строке поиска. Кроме того, если вы не завершите переход к развертыванию (проведя пальцем назад, затем вперед), вся панель поиска исчезнет. Я попытался отключить контроллер поиска на viewWillDisappear , но это не сработало.

Анимация

SearchViewController:

 override func viewDidLoad() {
    super.viewDidLoad()

    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search Candies"
    navigationItem.searchController = searchController
    definesPresentationContext = true
}

override func viewWillDisappear(_ animated: Bool) {
    navigationItem.searchController?.dismiss(animated: false)
}
  

RedViewController:

 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)
}
  

Комментарии:

1. Попробуйте поместить код настройки контроллера поиска в view, вместо viewDidLoad появится viewDidLoad

2. К сожалению, это все еще происходит