Итак, в настоящее время я пытаюсь заменить устаревший searchDisplayController в одном из моих проектов на UISearchController, и я столкнулся с этой проблемой.
Если в поиске нет результатов (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
})()
....
}
Теперь, если я добавлю эту функцию в уравнение, кнопка отмены всегда закрывает VC.
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
resultSearchController.active = false
}
Так почему же установка searchController.active = false закрывает VC? Это потому, что он использует тот же UITableView, что и VC? Я считаю, что старый searchDisplayController просто отображал бы UITableView поверх используемого. Если это так, есть ли способ переопределить отклонение VC?
activeпоfalseи нажмете кнопку отмены? - person shim   schedule 05.05.2015definesPresentationContext = trueявляется решающим фактором. - person shim   schedule 06.05.2015