swift prepareForSegue ne fonctionne pas / exc_breakpoint (code = exc_i386_bpt sous-code = 0x0)

J'ai cette fonction qui n'est pas appelée du tout. Je ne sais pas l'événement get la préparation pour segue imprimé …

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { println("PREPARING FOR SEGUE"); if (segue.identifier == "ToChatRoom") { var chatView:ChatRoomViewController = segue.destinationViewController as ChatRoomViewController; var index = coralReefTableView.indexPathForSelectedRow()!.row; var id = roomIDArray.objectAtIndex(index); println("ID IS : \(id)"); chatView.selectedRoomID = id as Int; } } 

J'appelle la segue avec ces lignes de code …

  func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { var cell = tableView.cellForRowAtIndexPath(indexPath); //performSegueWithIdentifier("ToChatRoom", sender: self); let nextController:AnyObject! = self.storyboard?.instantiateViewControllerWithIdentifier("chatRoom"); self.showViewController(nextController as UIViewController, sender: nextController); 

quand je décommente le performSegueWithIdentifier, j'obtiens cette erreur: exc_breakpoint (code = exc_i386_bpt subcode = 0x0). Je me demandais quelle serait la cause de cela?

Est-ce que votre ChatRoomViewController se trouve dans un controller de navigation? Si c'est alors segue.destinationViewController ne pointera pas vers le controller ChatRoom? Juste une supposition. Dans ce cas, vous auriez besoin de quelque chose comme:

 if segue.identifier == "ToChatRoom" { let navigationController = segue.destinationViewController as UINavigationController let chatView = navigationController.viewControllers[0] as ChatRoomViewController var index = ... 

Lorsque la ligne performSegueWithIdentifier est mise en commentaire, prepareForSegue n'est jamais appelée. La ligne suivante explicitement instanciée à partir du storyboard contourne le besoin.