在JSQMessagesViewController

时间:2016-06-22 12:38:34

标签: ios swift jsqmessagesviewcontroller

我正在尝试使用JSQMessagesViewController

实施“已发送”状态

我有一个消息队列和一个聊天视图控制器。当消息队列成功发送特定消息时,我希望能够在ChatViewController中重新加载特定的单元格。

如何在消息队列和ChatVC之间进行此类通信?

这是我能够做到的 -

这是我的消息队列 -

var unsentMessages = [String]() {
    didSet {
        // Check if a new value is being added or removed
        // If a new value is added then the oldValue will anve less elements than the original unsentMessages list
        if oldValue.count < unsentMessages.count {


            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), {

                newValue in

                let messageID = unsentMessages.last


                let realm = try! Realm()


                for i in 1...10 {

                    if channel.subscribed {

                        let message = realm.objectForPrimaryKey(Message.self, key: messageID)
                        channel.trigger("client-message", data: (message?.pusherMessage())!)
                        unsentMessages.popLast()

                        break

                    } else {

                        let time = 2 << UInt(i)
                        sleep(UInt32(time))
                    }
                }

            })

现在我需要做的是从ChatViewController内部的某个地方调用以下代码 - self.collectionView.reloadItemsAtIndexPaths()。这会自动重新加载消息单元并更新状态。

如何在ChatViewController中调用代码并从消息队列中传递数据(messageID)。

1 个答案:

答案 0 :(得分:0)

为什么一旦发送的邮件成功,就不要在chatVC上拨打passReqToCallback : true instead of passReqToCallBack: true