同じviewcontrollerで、友人に情報を送信するための電子メールまたはテキストメッセージを送信できます。 アプリ内のテキストメッセージは完全に機能します。しかし電子メールの場合、電子メールアプリは、私が書くように頼まれたすべての情報で私のアプリの中で開きますが、キャンセルを押すことによってそれを却下することは不可能です、何も起こりません。 mc.mailComposeDelegate = selfまたはmc.delegate = selfを試してみました。また、MFMailComposeViewControllerDelegateも先頭にあります。 私はインターネット上のすべてを見て、私は何の説明も見つかりませんでした。 mailComposeControllerは決して呼び出されません! ご存知ですか?SWIFT - mailComposeDelegateが呼び出されていない:MFMailComposeViewControllerのキャンセルが機能しない
class inviteAFriendViewController: UIViewController, MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate {
@IBAction func emailButtonDidTouch(sender: AnyObject) {
sendEmail()
}
func sendEmail() {
let emailTitle = "text"
let messageBody = "text"
let toRecipents = [""]
let mc = MFMailComposeViewController()
//mc.mailComposeDelegate = self
mc.delegate = self
mc.setSubject(emailTitle)
mc.setMessageBody(messageBody, isHTML: false)
mc.setToRecipients(toRecipents)
presentViewController(mc, animated: true, completion: nil)
}
func mailComposeController(controller2: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
switch result.rawValue {
case MFMailComposeResultCancelled.rawValue:
print("Mail cancelled")
controller2.dismissViewControllerAnimated(true, completion: nil)
case MFMailComposeResultSaved.rawValue:
print("Mail saved")
controller2.dismissViewControllerAnimated(true, completion: nil)
case MFMailComposeResultSent.rawValue:
print("Mail sent")
controller2.dismissViewControllerAnimated(true, completion: nil)
case MFMailComposeResultFailed.rawValue:
print("Mail sent failure.")
controller2.dismissViewControllerAnimated(true, completion: nil)
default:
break
}
controller2.dismissViewControllerAnimated(true, completion: nil)
}
ああ私の神それは動作しますが、私はあなたが誰か知っているが1000回ありがとう!良い一日を! – Oscar