закрыть MessageComposeViewController после отправки сообщения swift - PullRequest
0 голосов

При нажатии на кнопку открывается окно для отправки сообщения, проблема в том, что открывающееся окно не закрывается после отправки сообщения, только после нажатия на кнопку отмены ... всегда приходится убивать приложение.

 @IBAction func smssendOrderButtonTapped(_ sender: AnyObject) {


      let controller = MFMessageComposeViewController()
    controller.messageComposeDelegate = self as? MFMessageComposeViewControllerDelegate
    self.present(controller, animated: true, completion: nil)

    controller.body = orderBody()
    controller.recipients = ["89883003000"]

    func messageComposeViewController(controller: MFMessageComposeViewController,
                                  didFinishWithResult result: MessageComposeResult) {

    controller.dismiss(animated: true, completion: nil)}  }

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

В вашем коде MFMessageComposeViewController метод делегата записан в методе smssendOrderButtonTapped.

Вам необходимо подтвердить протокол MFMessageComposeViewControllerDelegate и выполнить следующее;

class 'YourViewController': UIViewController, MFMessageComposeViewControllerDelegate {

func messageComposeViewController(controller: MFMessageComposeViewController,
                              didFinishWithResult result: MessageComposeResult) {

controller.dismissViewControllerAnimated(true, completion: nil)
}

}
0 голосов
/ 10 апреля 2020

Заменить:

  controller.messageComposeDelegate = self as? controller.messageComposeDelegate = self as? MFMessageComposeViewControllerDelegate

С:

   class Vc: UIViewController, MFMessageComposeViewControllerDelegate { 

@IBAction func smssendOrderButtonTapped(_ sender: AnyObject) {

  let controller = MFMessageComposeViewController()
  controller.messageComposeDelegate = self

        }
   } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...