【问题标题】:performSegue throwing SIGABRTperformSegue 抛出 SIGABRT
【发布时间】:2017-06-20 23:02:28
【问题描述】:

这段代码应该有一个按钮被点击,一个segue被执行,加密的数据被传递到第二个视图控制器的变量passedData。 这是按钮操作的代码:

@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 在 cmets 中已经回答了我的问题。毫不犹豫地给出答案。

【问题讨论】:

  • stackoverflow.com/questions/25513134/…,看看这里是否能解决问题。
  • @AaronHalvorsen 谢谢,这回答了我的问题!
  • 您的视图控制器可能没有名为showEncoded 的segue,请仔细检查。 PS。为了将来参考,您应该检查控制台在收到错误时所说的内容,SIGABRT 并没有说太多,它只是说执行已中止,但我很确定 Xcode 中的控制台会说它没有找到您指定的名称的segue。
  • 你能分享 SIGABRT 错误的完整堆栈跟踪吗?它可能表明问题的原因。

标签: ios swift segue


【解决方案1】:

sigabrt error calling segue programatically in swift

确保从视图控制器到情节提要没有任何孤立的连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2017-03-22
    • 2023-03-26
    相关资源
    最近更新 更多