2017-06-10 4 views
1

Dieser Code wird soll haben eine Schaltfläche geklickt bekommen, ein Segue durchgeführt werden und die verschlüsselten Daten erhalten, um den zweiten View-Controller var geben genannt passedData. Hier ist der Code für die Schaltfläche Aktion:performSegue werfen SIGABRT

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

Für die prepareForSegue Ich habe diesen Code:

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

die Zeile, die sagt: „performSegue“ ist derjenige, der die SIGABRT Fehler wirft. Bitte kommentieren Sie, wenn Sie weitere Informationen benötigen und ich werde nicht zögern, weitere Informationen hinzuzufügen.

BTW, meine Frage wurde bereits in den Kommentaren von Aaron Halvorsen beantwortet. Zögern Sie nicht, eine Antwort zu geben.

+2

https://stackoverflow.com/questions/25513134/sigabrt-error-calling-segue-programatically-in-swift, sieh hier und sehen, ob das es löst. –

+0

@AaronHalvorsen Danke, das beantwortet meine Frage! –

+0

Ihr View-Controller hat wahrscheinlich keinen Unterpunkt namens showEncoded, überprüfen Sie dies. PS. Für zukünftige Referenz sollten Sie überprüfen, was die Konsole sagt, wenn Sie einen Fehler bekommen, 'SIGABRT' sagt nicht viel, es sagt buchstäblich nur, dass die Ausführung abgebrochen wurde, aber ich bin mir ziemlich sicher, dass die Konsole in Xcode das sagt Es wurde kein Übergang mit dem von Ihnen angegebenen Namen gefunden. – EmilioPelaez

Antwort