Also, ich versuche derzeit, die depricated searchDisplayController in einem meiner Projekte mit UISearchController zu ersetzen, und ich bin dabei, dieses Problem zu lösen.UISearchController entlässt VC beim Drücken der Cancel-Taste
Wenn keine Ergebnisse in der Suche gefunden werden (die UITableView ist leer), wird der gesamte ViewController geschlossen. Dies passiert nicht, wenn die Suchergebnisse nicht leer sind. Ich möchte klarstellen, dass ich keinen UITableViewController verwende. Stattdessen habe ich eine reguläre VC mit einem UITableView darin.
Hier einige meiner Code:
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
})()
....
}
Nun, wenn ich die Taste immer die VC Aufheben dieser Funktion der Gleichung hinzufügen entlässt.
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
resultSearchController.active = false
}
Warum genau funktioniert Einstellung der searchController.active = false
die VC entlassen? Liegt es daran, dass dasselbe UITableView wie das VC verwendet wird? Ich glaube, dass der alte searchDisplayController nur eine UITableView über die verwendete anzeigen würde. Wenn dies der Fall ist, gibt es eine Möglichkeit, die AblehnungsVC zu überschreiben?
Was passiert, wenn Sie Einstellung nicht über die Linie umfassen 'active' zu 'false' und du drückst den Cancel Button? – shim
Wenn es nicht enthalten ist, wird die VC nur dann gelöscht, wenn keine Suchergebnisse vorliegen, wie in der Frage angegeben. Wenn es enthalten ist, wird es immer ausgeführt, wenn der Abbrechen-Knopf gedrückt wird. – boidkan
Es wird ausgeblendet, wenn keine Suchergebnisse angezeigt werden, oder es wird gelöscht, wenn keine Suchergebnisse angezeigt werden und Sie auf Abbrechen klicken. – shim