Voici le code que j'ai actuellement:nulle variable en essayant de passer des variables voir avec contrôleur Segue
var valueToPass: String!
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
let indexPath = tableView.indexPathForSelectedRow();
let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;
valueToPass = currentCell.textLabel.text // valueToPass now equals "test"
performSegueWithIdentifier("yourSegueIdentifer", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var viewController = segue.destinationViewController as AnotherViewController
viewController.passedValue = valueToPass // valueToPass equals nil here? Why?
}
comme vous pouvez le voir, je l'ai assigné "test" à valueToPass en didSelectRowAtIndexPath
mais prepareForSegue
, valueToPass est nul? Pourquoi?
Votre tablevue est-elle présentée dans un storyboard avec le segue? si c'est le cas, je ne suis pas certain que 'tableView: didSelectRowAtIndexPath:' est effectivement appelé avant 'prepareForSegue: sender:'. Vous pouvez tester cela en supprimant les points d'arrêt dans les deux méthodes et en voyant ceux qui se déclenchent en premier lorsque vous tapez sur la cellule. Essayez de garder 'prepareForSegue: expéditeur:' libre de dépendances implicites sur les autres méthodes – markedwardmurray