所以我在这里按照本教程使用JSQMessagesViewController创建了一个聊天视图控制器:https://learnappmaking.com/chat-app-ios-firebase-swift-xcode/#comment-1930我的代码或多或少是相同的,我没有对其进行任何重要的调整,该教程仅适用于单个视图控制器,因此我添加了另一个查看该应用程序的控制器,但是每次执行segues时,都会收到错误SIGABRT,无论我是使用performSegue还是使用导航栏中的后退按钮进行搜索,它都会一直发出信号SIGABRT。任何帮助,将不胜感激。

这是我的viewdidload:

 override func viewDidLoad() {
    super.viewDidLoad()
    senderId = "1111"
    senderDisplayName = "Bob"
    title = "Steve"

    inputToolbar.contentView.leftBarButtonItem = nil
    collectionView.collectionViewLayout.incomingAvatarViewSize = CGSize.zero
    collectionView.collectionViewLayout.outgoingAvatarViewSize = CGSize.zero
    let query = Constants.refs.databaseChats.queryLimited(toLast: 10)

    _ = query.observe(.childAdded, with: { [weak self] snapshot in

        if  let data        = snapshot.value as? [String: String],
            let id          = data["sender_id"],
            let name        = data["name"],
            let text        = data["text"],
            !text.isEmpty
        {
            if let message = JSQMessage(senderId: id, displayName: name, text: text)
            {
                self?.messages.append(message)

                self?.finishReceivingMessage()
            }
        }
    })
    // Do any additional setup after loading the view.
}

最佳答案

SIGABRT(信号中止)通常是由情节提要中的引用错误引起的。您是否曾经更改过一个类的名称或从一个视图控制器的按钮建立到另一个视图的连接,然后将其删除?如果更改了类的名称,则必须确保该类代码中的名称与之匹配。如果删除了视图控制器之间的按钮连接,请单击控制器本身,然后在“连接”选项卡下必须将其删除。

关于swift - JSQMessagesViewController无法执行Segues,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50554541/

10-13 04:04