Я безуспешно искал решение своей проблемы...
Приложение, которое я разрабатываю, позволяет пользователю сыграть в небольшую викторину и отправить результат в виде текстового сообщения. Все работает нормально, за исключением случаев, когда предполагается, что MessageComposeViewController отклоняется (при отправке/отмене).
Похоже, что MessageComposeViewController не вызывает делегат, так как я не получаю вывод из функции делегата...
У меня есть отдельный класс SendMessage, который обрабатывает MessageComposeViewController, когда пользователь нажимает кнопку "Отправить" в ViewController, я создаю экземпляр этого класса и представляю его.
Часть моего ViewController с кнопкой отправки:
@IBAction func Send(_ sender: Any) {
let sendResult = SendMessage()
if sendResult.canSend() {
let meddelande = sendResult.createMessage(result: 8, name: "Steve Jobs")
present(meddelande, animated: true, completion: nil)
} else {
alert.addAction(alertButton)
self.present(alert, animated: true, completion: nil)
}
}
Класс, обрабатывающий MessageComposeViewController, называется SendMessage (некоторый ненужный код я оставил)
func createMessage(result: Int, name: String) -> MFMessageComposeViewController {
let meddelande = MFMessageComposeViewController()
meddelande.messageComposeDelegate = self
meddelande.recipients = ["PhoneNumber"]
meddelande.body = name + ": " + String(result)
return meddelande
}
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
print ("F*ck")
controller.dismiss(animated: true, completion: nil)
}
Благодарен за любую помощь!