Qui devo fare qualcosa di sbagliato. Ho un UITableView e ho implementato un UISearchController. Ho una cella Prototipo collegata alla schermata dei dettagli e passaggio il valore selezionato nel metodo prepareForSegue.Diverso comportamento per i passaggi usando UISearchController
Per il normale controller di visualizzazione, tutto funziona OK, una riga è selezionata e la schermata dei dettagli viene spinta (ad esempio, scorrere verso destra).
Tuttavia, quando v'è una ricerca attiva, utilizzando l'UISearchController, la schermata dei dettagli è presentato modale (cioè scorrere dal fondo dello schermo) senza l'UINavigationBar (quindi non c'è alcuna possibilità di andare "indietro")
non sto usando didSelectRowAtIndexPath da quando ho usato storyboard per spingere la schermata dei dettagli
Perché l'animazione presentazione diversa quando lo stesso codice in "prepareForSegue" viene chiamato in modo corretto in ogni caso:
// MARK: - Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier! == "PresentContactDetail") {
// pass person details from selected row
if let selectedRow = self.tableView.indexPathForSelectedRow()?.row {
let selectedPerson = self.visibleResults[selectedRow]
(segue.destinationViewController as ContactDetail).personRecord = selectedPerson
}
}
}
Qualsiasi suggerimento ricevuto con gratitudine.