Я использую несколько UISearchBar
как titleView
s в UINavigationController
s, встроенных в UITabBarController
. Все это прекрасно работает, когда я нажимаю и выскакиваю контроллеры с помощью кнопки назад. Но панель поиска начинает исчезать, когда я щелкаю с помощью интерактивного жеста.
Я не уверен, как это исправить.
Я пытался установить titleView
из navigationItem
в viewWillAppear
и viewDidAppear
, но оба не работали.
Панель поиска принимает ввод и касается, она просто не видна.
Вот код viewWillAppear
:
override func viewWillAppear(_ animated: Bool) {
print("view will appear from base search")
super.viewWillAppear(animated)
print(self.searchController.searchBar)
self.definesPresentationContext = true
self.navigationItem.titleView = nil
self.navigationItem.titleView = self.searchController.searchBar
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
Вот несколько фотографий того, что происходит:
https://imgur.com/a/OQ7kb1q
Первая фотография - домашняя страница.
Вторая фотография - пользователь, набирающий в поисковом запросе.
Третье фото - когда пользователь возвращается после выполнения интерактивного жеста.
Четвертая фотография показывает, что вы все еще можете печатать в строке поиска, даже если она не видна.
Пятая фотография показывает, что вы все еще можете нажать кнопку отмены рядом с панелью поиска, даже если она не видна.