首页 > 解决方案 > JSQMessagesviewcontroller 无法执行 segues

问题描述

所以我在本教程之后使用 JSQMessagesViewController 创建了一个聊天视图控制器:https ://learnappmaking.com/chat-app-ios-firebase-swift-xcode/#comment-1930我的代码或多或少相同,我没有不要调整其中的任何重要内容,本教程仅适用于单个视图控制器,因此我为应用程序添加了另一个视图控制器,但每次执行 segues 时,我都会收到错误 SIGABRT,无论我是使用 performSegue 还是使用 back导航栏中的按钮,它一直发出信号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.
}

标签: swiftjsqmessagesviewcontroller

解决方案


SIGABRT(信号中止)通常来自情节提要中的引用错误。你有没有改变过一个类的名字或者从一个视图控制器的一个按钮连接到另一个然后删除它?如果您更改了类的名称,则必须确保类代码中的名称与该名称匹配。如果您删除了视图控制器之间的按钮连接,请单击控制器本身,然后在连接选项卡下您必须将其删除。


推荐阅读