2014-12-02 8 views
5

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.

risposta

1

in viewDidLoad di UITableViewController set definesPresentationContext = true

Problemi correlati