メール送信機能を伴うiOSアプリを作成しております。
困っていること
mailComposeControllerのデリゲートメソッドが呼ばれず、
メーラーを閉じることができません。
ソースコード
以下、該当のソースコードです。
環境
Swift5
Xcode11.5
Swift
1 2import UIKit 3import MessageUI 4 5class SampleViewController: UIViewController, MFMailComposeViewControllerDelegate { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 } 10 11 @IBAction func mailBtnTapped(_ sender: Any) { 12 if MFMailComposeViewController.canSendMail() { 13 let mc = MFMailComposeViewController() 14 mc.mailComposeDelegate = self 15 mc.setToRecipients(["sample@gmail.com"]) 16 mc.setSubject("サンプル") 17 mc.setMessageBody("サンプル本文", isHTML: false) 18 self.present(mc, animated: true, completion: nil) 19 } else { 20 print("send error") 21 } 22 } 23 24 // これが呼ばれない 25 func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { 26 switch result { 27 case .cancelled: 28 print("キャンセル") 29 break 30 case .saved: 31 print("下書き保存") 32 break 33 case .sent: 34 print("送信成功") 35 break 36 default: 37 print("送信失敗") 38 } 39 controller.dismiss(animated: true, completion: nil) 40 } 41} 42
試したこと
メソッドの記述方法が違うのかと思い、色々と試しましたがやはり閉じませんでした。
Swift
1func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) { 2 controller.dismissViewControllerAnimated(true, completion: nil) 3}
初歩的な質問ではございますが、ご回答いただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー