2014-12-02 15 views
5

Ich muss hier etwas falsch machen. Ich habe ein UITableView und habe einen UISearchController implementiert. Ich habe eine Prototyp-Zelle, die mit dem Detailbildschirm verknüpft ist, und übergibt den ausgewählten Wert in der prepareForSegue-Methode.Unterschiedliches Verhalten für den Übergang mit UISearchController

Für den normalen View-Controller funktioniert alles OK, eine Zeile wird ausgewählt und der Detailbildschirm wird gedrückt (d. H. Von rechts einschieben).

jedoch, wenn eine aktive Suche ist, die UISearchController verwenden, wird das Detailbild modal dargestellt (dh schieben von unten auf dem Bildschirm nach oben) ohne UINavigationBar (so gibt es keine Möglichkeit, zu gehen „zurück“)

ich verwende DidSelectRowAtIndexPath nicht, da ich Storyboard verwendet haben, die Details

zu schieben Bildschirm

Warum ist die präsentierenden Animation anders, wenn der gleiche Code in „prepareForSegue“ richtig in jedem Fall aufgerufen wird:

// 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 
     } 
    } 
} 

Irgendwelche Vorschläge dankbar erhalten.

Antwort

1

in ViewDidLoad von UITableViewController gesetzt definesPresentationContext = true

Verwandte Themen