JSQMessagesviewcontroller无法执行segues

时间:2018-05-27 17:05:58

标签: swift jsqmessagesviewcontroller

所以我在这里按照本教程使用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.
}

1 个答案:

答案 0 :(得分:0)

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