Ниже Gif из моего приложения, 1-й ВК включает в себя панель поиска для фильтрации песен, а когда нажимает строку, чтобы перейти на 2-й ВК, чтобы показать выбранную воспроизводимую песню.
Вопрос здесь, это то, что, когда открывается второй VC, строка поиска не исчезает сразу, она имеет задержку в 1 или 2 секунды, может видеть это поведение снизу GIF.
/ / / Вот мой код,как я мог решить эту проблему? Любая подсказка приветствуется.
var resultSearchController = UISearchController()
override func viewDidLoad() {
...
// add search bar
resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.hidesNavigationBarDuringPresentation = false
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
// set search Bar covered color, same with tableView's background color.
controller.searchBar.barTintColor = UIColor(rgb: 0x292f33)
self.tableView.tableHeaderView = controller.searchBar
return controller
})() // closure, learn it later!!
...
}
- Я отключаю панель поиска при выходе из текущего VC.
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
resultSearchController.isActive = false
}
/ / Обновление, как комментарий Мэтта, я изменяю код для интеграции панели поиска в панель навигации, и теперь панель поиска сразу исчезаетпосле открытия VC2.
удалите self.tableView.tableHeaderView = controller.searchBar
и интегрируйте панель поиска в панель навигации navigationItem.searchController = resultSearchController
. Теперь поведение такое же, как в почтовом приложении Apple.