Quindi, sto attualmente cercando di sostituire il searchDisplayController privato in uno dei miei progetti con UISearchController e sto riscontrando questo problema.UISearchController disattiva VC premendo il pulsante Annulla
Se non vi sono risultati nella ricerca (UITableView è vuoto) l'intero ViewController viene eliminato. Questo non accade quando i risultati della ricerca non sono vuoti. Non voglio chiarire che non sto usando un UITableViewController. Invece ho un VC regolare con un UITableView in esso.
Ecco alcuni del mio codice:
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
})()
....
}
Ora, se posso aggiungere questa funzione per l'equazione il pulsante Annulla respinge sempre il VC.
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
resultSearchController.active = false
}
Allora perché fa esattamente l'impostazione del searchController.active = false
respingere il VC? È perché sta usando lo stesso UITableView del VC? Credo che il vecchio searchDisplayController mostrerebbe semplicemente un UITableView rispetto a quello utilizzato. Se questo è il caso, c'è un modo per ignorare il respingereVC?
Cosa succede quando non si include l'impostazione 'active' alla linea 'false' e premi il pulsante Annulla? – shim
Quando non è incluso, si limita a chiudere il VC quando non ci sono risultati di ricerca come indica la domanda. Se è incluso, lo fa sempre quando viene premuto il pulsante Annulla. – boidkan
Chiude quando non ci sono risultati di ricerca, o chiude quando non ci sono risultati di ricerca e premi Annulla? – shim