2017-06-10 100 views
1

此代码应该有一个按钮获得点击,来执行一个SEGUE和加密数据获得通过向第二视图控制器的变种称为passedData。 下面是按钮动作的代码:performSegue投掷SIGABRT

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

对于prepareForSegue我有这样的代码:

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

,上面写着“performSegue”是抛出SIGABRT错误的一个行。如果您需要更多信息,请发表评论,我会毫不犹豫地添加更多信息。

顺便说一句,我的问题已经在Aaron Halvorsen的评论中得到了回答。不要犹豫,要回答。

+2

https://stackoverflow.com/questions/25513134/sigabrt-error-calling-segue-programatically-in-swift,看看这里,看看是否解决它。 –

+0

@AaronHalvorsen谢谢,这回答了我的问题! –

+0

您的视图控制器可能没有名为'showEncoded'的segue,请仔细检查。 PS。为了将来的参考,你应该检查控制台在出现错误时说的是什么,'SIGABRT'没有说太多,它实际上只是说执行被中止了,但我确信Xcode中的控制台说它没有找到你指定的名字。 – EmilioPelaez

回答