2015-09-04 2 views
1

Я хочу отправить сообщение, и я знаю, что он посылает черезОтправка сообщения в JSQMessagesController

override func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: NSDate!) { 
    let message = JSQMessage(senderId: "[email protected]", senderDisplayName: "The Flash", date: NSDate(), text: text) 

// SENDING CODE HERE 
} 

эту функцию, но я не знаю, как отправить его на нажатия на кнопку отправки.

Я искал и нашел этот пример:

OneMessage.sendMessage(text, to: recipient.jidStr, completionHandler: { (stream, message) -> Void in 
    JSQSystemSoundPlayer.jsq_playMessageSentSound() 
     self.finishSendingMessageAnimated(true) 
    }) 

, но у меня нет способа .sendMessage в моем случае. Какие-либо предложения?

ответ

0

sendMessage - это просто функция, которая была написана вне самой структуры, и я предполагаю, что она найдена в подклассе JSQMessagesViewController. Вы по-прежнему хотите отключить любую логику, которую вы будете запускать внутри doPressSendButton.

0

Если вы используете массив для источника данных JSQMessagesViewController, просто добавьте сообщение (типа JSQMessage) в массив и вызовите self.finishSendingMessageAnimated(true), чтобы вызвать обновление и анимацию.

Если вы используете основные данные, вам необходимо сохранить сообщение в своей базе данных и зависеть от NSFetchedResultsController для запуска обновления в controllerDidChangeContent или других методах обратного вызова.

Поскольку вы используете XMPPFramework, вы также можете составить элемент xml сообщения и отправить его с помощью XMPPStream.

Надеюсь, что это поможет!

Смежные вопросы