Übergeben von Werten zwischen ViewControllers basierend auf der Auswahl in der Liste in Swift

Ich versuche zu übergeben, die den ausgewählten index-Nummer eines listView-Auswahl von einem ViewController zum anderen aber bin läuft in ein Problem mit dem tableView didSelectRowAtIndexPath delegieren, läuft etwas später als die prepareForSegue-Funktion.

Grundsätzlich in didSelectRowAtIndexPath, ich seta-variable, die dann aufgegriffen in der prepareForSegue. Das Problem ist, dass prepareForSegue scheint, zu laufen, die zweite, dass die Zelle ausgewählt ist und bevor der didSelectRowAtIndexPath Funktion, so heißt meine variable wird nicht übergeben.

Meine wichtigsten Codes sind:

tableView didSelectRowAtIndexPath Delegierten, die sets 'selectedResult'...

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    selectedResult = indexPath.item
    txtNameSearch.resignFirstResponder()    //get rid of keyboard when table touched.
    println("saved result")


    //tableView.deselectRowAtIndexPath(indexPath, animated: false)
    //var tappedItem: ToDoItem = self.toDoItems.objectAtIndex(indexPath.row) as ToDoItem
    //tappedItem.completed = !tappedItem.completed
    //tableView.reloadData()

}

prepareForSegue-Funktion sendet die variable als "toPass" auf der anderen ViewController ('detailViewController'):

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!){
    if (segue.identifier == "detailSeque") {
        println("preparing")
        var svc = segue!.destinationViewController as detailViewController
        svc.toPass = selectedResult

        //println(tableView.indexPathsForSelectedRows().
        //svc.toPass = tableView.indexPathForSelectedRow()

    }
}

Vielen Dank im Voraus

Ich bezweifle, dass NSIndexPath hat die Eigenschaft item.

InformationsquelleAutor Oliver Spencer | 2014-08-18

Schreibe einen Kommentar