Вы неправильно внедрили MFMessageComposeViewControllerDelegate
в свой код.
Прежде всего вам необходимо подтвердить MFMessageComposeViewControllerDelegate
с помощью UIViewController
, как показано ниже:
class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {
Далее вам нужно добавить метод делегата, как показано ниже:
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
self.dismiss(animated: true, completion: nil)
}
Тогда вам нужно заменить
controller1.messageComposeDelegate = self as? MFMessageComposeViewControllerDelegate
с
controller1.messageComposeDelegate = self
Демо-код будет:
import UIKit
import MessageUI
class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {
@IBAction func sendText(_ sender: Any) {
if (MFMessageComposeViewController.canSendText()) {
let controller = MFMessageComposeViewController()
controller.body = "Message Body"
controller.messageComposeDelegate = self
self.present(controller, animated: true, completion: nil)
}
}
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
self.dismiss(animated: true, completion: nil)
}
}