Swift中的MFMailComposeViewController不会被忽略

Ale*_*mov 9 objective-c uiviewcontroller swift ios8 mfmailcomposeviewcontroller

这是示例代码:

import UIKit
import MessageUI

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {

@IBAction func showEmail(sender : AnyObject) {
    var emailTitle = "Test Email"
    var messageBody = "This is a test email body"
    var toRecipents = ["a.nakhimov@gmail.com"]
    var mc: MFMailComposeViewController = MFMailComposeViewController()
    mc.mailComposeDelegate = self
    mc.setSubject(emailTitle)
    mc.setMessageBody(messageBody, isHTML: false)
    mc.setToRecipients(toRecipents)

    self.presentViewController(mc, animated: true, completion: nil)
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) {
    switch result.value {
    case MFMailComposeResultCancelled.value:
        NSLog("Mail cancelled")
    case MFMailComposeResultSaved.value:
        NSLog("Mail saved")
    case MFMailComposeResultSent.value:
        NSLog("Mail sent")
    case MFMailComposeResultFailed.value:
        NSLog("Mail sent failure: %@", [error.localizedDescription])
    default:
        break
    }
    self.dismissModalViewControllerAnimated(true)
    // self.dismissViewControllerAnimated(true, completion: nil)
}

}
Run Code Online (Sandbox Code Playgroud)

当我按下按钮时, 执行showEmail功能并显示发送电子邮件的表单.如果我点击"发送",那么一切正常 - 发送邮件,然后执行函数mailComposeController .NSLog显示"已发送邮件"标签,并重新显示初始屏幕.

如果我在发送邮件的对话框中,单击"取消"按钮,则对话框不会消失,函数mailComposeController不起作用,两个按钮 - "发送"和"取消",变为灰色等等,它保持不变.

怎么了?

Yat*_*B L 2

似乎是 iOS 8 中的错误。同样的问题也存在于 Objective-C 中。