La transmission de valeurs entre ViewControllers basé sur la liste de sélection rapide

Je suis en train de passer l'index sélectionné nombre d'une liste de sélection d'un ViewController à l'autre, mais je suis en cours d'exécution dans un problème avec le tableView didSelectRowAtIndexPath délégué s'exécute un peu plus tard que la prepareForSegue fonction.

Pour l'essentiel, dans didSelectRowAtIndexPath, je seta variable, qui est ensuite repris dans le prepareForSegue. Le problème est que prepareForSegue semble courir le deuxième que la cellule est sélectionnée et avant la didSelectRowAtIndexPath fonction est appelée si ma variable n'est pas transmise.

Mon principal des morceaux de code sont:

tableView didSelectRowAtIndexPath délégué, qui définit des "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 fonction qui envoie la variable 'toPass" à l'autre 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()

    }
}

Merci d'avance

  • Je doute que NSIndexPath a une propriété de l'élément.