Я использую SearchBar и когда я выбираю для поиска, это workes просто отлично (кроме этого предупреждения во время выполнения, что я не могу исправить Attempting to load the view of a view controller while it is deallocating... UISearchController)Swift: SearchBar остается видимым на parentViewController
Но если SearchBar IsActive и жмем «Назад» из NavBar, представлен родительский элемент, но также видно окно поиска с предыдущего экрана. Я попробовал отклонить searchBar, если нажата кнопка «Назад», но она все еще видна в течение некоторого времени. Я имею в виду
self.navigationItem.backButtonItem.enabled = false
пока SearchBar активен, но мне не нравится это решение
мой код (я также Func updateSearchResultsForSearchController):
class ViewController: UIViewController ,UISearchResultsUpdating {
var resultSearchController = UISearchController()
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 9.0, *) {
self.resultSearchController.loadViewIfNeeded()// iOS 9
} else {
// Fallback on earlier versions
let _ = self.resultSearchController.view// iOS 8
}
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.hidesNavigationBarDuringPresentation = false
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
предупреждение Среда (не если это проблема)
Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7ff88130fdb0>)
Первый вызывает много ошибок в коде, он не работает. И я упомянул, что я попробовал отклонить searchBar, но у него есть задержка, поэтому он все еще отображается за 1-2 секунды до этого. – PoolHallJunkie
@PoolHallJunkie, попробуйте отклонить его без анимации или, так как ваш отклоняющий контроллер просмотра удаляет его из супервизора 'removeFromSuperView()'. –
thx, теперь его быстрее. Предупреждение все еще существует, UISearchController! не работает, только UISearchController!(), но получает фатальную ошибку – PoolHallJunkie