2017-06-10 99 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

回答