2017-06-10 1 views
1

Ce code est censé ont un bouton se cliqué, un Segue être effectué et les données chiffrées sont transmis à var la deuxième contrôleurs de vue appelé passedData. Voici le code de l'action du bouton:performSegue lancer SIGABRT

@IBAction func encodePressed(_ sender: Any) { 
    if messageInput.hasText { 
     encodedMessage = encodeMessage(input: messageInput.text!) 
     performSegue(withIdentifier: "showEncoded", sender: nil) 
    } 
} 

Pour le prepareForSegue J'ai ce code:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let destinationViewController = segue.destination as? secondVC { 
     if let message = encodedMessage { 
      destinationViewController.passedData = message 
     } 
    } 
} 

La ligne qui dit "performSegue" est celui qui jette l'erreur SIGABRT. S'il vous plaît commenter si vous avez besoin de plus d'informations et je n'hésiterai pas à ajouter plus d'informations.

BTW, ma question a été déjà répondu dans les commentaires par Aaron Halvorsen. N'hésitez pas à mettre une réponse.

+2

https://stackoverflow.com/questions/25513134/sigabrt-error-calling-segue-programatically-in-swift, regardez ici et voir si cela résout. –

+0

@AaronHalvorsen Merci, Cela a répondu à ma question! –

+0

Votre contrôleur de vue n'a probablement pas de segue appelé 'showEncoded', vérifiez bien. PS. Pour référence ultérieure, vous devriez vérifier ce que la console indique quand vous obtenez une erreur, 'SIGABRT' ne dit pas beaucoup, il dit littéralement que l'exécution a été annulée, mais je suis sûr que la console dans Xcode dit que il n'a pas trouvé de lien avec le nom que vous avez spécifié. – EmilioPelaez

Répondre