#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. К сожалению, это все еще происходит