не могу закрыть диспетчер просмотра почты - PullRequest
0 голосов
/ 21 мая 2019

Этот код работает и представляет заполненную форму электронной почты и отправляет письмо просто отлично, просто не могу заставить его отклонить после отправки или попытки отменить.

я уверен, что упускаю что-то простое.Я также понимаю, что у меня ничего нет, если есть ошибка, но на данный момент она работает и отправляет электронную почту, но я не могу заставить ее отклонить

попробовал несколько предложений, которые я нашел в Интернете, и есть другие способы сделать это, ноЯ пытаюсь понять, почему это не работает, поэтому хочу, чтобы этот способ (или близко) работал .... xcode 10.2.1

import UIKit
import MessageUI

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func sendEmail(_ sender: Any) {

        sendEmail()

        }

    func sendEmail() {
        if MFMailComposeViewController.canSendMail() {
            let mail = MFMailComposeViewController()
            mail.mailComposeDelegate = self
            mail.setToRecipients(["xxx@xx.com"])
            mail.setSubject("test  ")
            mail.setPreferredSendingEmailAddress("xxx@jxxx.com")

            present(mail, animated: true)   

        } else {
            //show failure alert
        }

        func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {

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

        }

    }

компилирует и отправляет электронную почту нормально, просто не могу закрыть контроллер

1 Ответ

0 голосов
/ 21 мая 2019

Все методы делегата должны находиться в области видимости, в вашем текущем коде didFinishWith, который должен уменьшать вложенность почты в sendEmail

import UIKit
import MessageUI

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func sendEmail(_ sender: Any) { 
        sendEmail() 
    }

    func sendEmail() {
        if MFMailComposeViewController.canSendMail() {
            let mail = MFMailComposeViewController()
            mail.mailComposeDelegate = self
            mail.setToRecipients(["xxx@xx.com"])
            mail.setSubject("test  ")
            mail.setPreferredSendingEmailAddress("xxx@jxxx.com") 
            present(mail, animated: true)   

        } else {
            //show failure alert
        } 
    }

    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { 
        controller.dismiss(animated: true, completion: nil) 
    }
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...