Итак, я в настоящее время пытаюсь заменить лишенный searchDisplayController в одном из моих проектов с помощью UISearchController, и я столкнулся с этой проблемой.UISearchController отклоняет VC при нажатии кнопки отмены
Если результатов поиска нет (UITableView пуст), весь ViewController отклоняется. Этого не происходит, когда результаты поиска не пусты. Я не хочу, чтобы я понял, что я не использую UITableViewController. Вместо этого у меня есть обычный VC с UITableView в нем.
Вот некоторые из моего кода:
var resultSearchController = UISearchController()
override func viewDidLoad() {
super.viewDidLoad()
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.delegate = self
controller.searchBar.delegate = self
self.studentTable.tableHeaderView = controller.searchBar
return controller
})()
....
}
Теперь, если добавить эту функцию в уравнение кнопка отмены всегда увольняет ВК.
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
resultSearchController.active = false
}
Так почему же именно установив searchController.active = false
уволить VC? Это потому, что он использует тот же UITableView, что и VC? Я считаю, что старый searchDisplayController просто отобразит UITableView над используемым. Если это так, то есть способ переопределить функцию rejectVC?
Что происходит, когда вы не включают в себя установку 'active' в строку 'false', и вы нажмете кнопку отмены? – shim
Когда он не включен, он отклоняет VC только в том случае, если нет результатов поиска по запросу. Если он включен, он всегда делает это, когда нажата кнопка отмены. – boidkan
Он отклоняет, когда нет результатов поиска, или отклоняется, когда нет результатов поиска, и вы нажимаете отменить? – shim