我已经(成功)实施了
mailComposeController:didFinishWithResult:error:
在我的应用的其他部分中关闭邮件撰写视图的方法,其中用户点击我提供的特定图标以发送电子邮件。我知道我必须设置委托并处理" didFinishWithResult"用户的行动。 现在在另一部分中,我打开一个文档并使用
UIBarButtonSystemItemAction, Document controller, and presentOptionsMenuFromBarButtonItem: method
,
我允许用户以PDF格式通过电子邮件发送文档。现在,PDF已成功附加到邮件,并可在键入电子邮件地址后发送。我的问题是在邮件发送后,撰写视图没有被删除。取消选秀/保存草案选项后也不会被驳回。我想我可能需要实现
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
但我似乎无法使用此方法。 (当使用presentOptionsMenuFromBarButtonItem时,不应该自动处理这个问题:?)。 我可能错误地设置了委托。如果有一些内置的方法可以照顾,或者,应该如何为此设置委托,任何人都可以提出一些启示。
答案 0 :(得分:0)
如果我找对你,我也有类似的问题。
您需要在ViewDidLoad之后放置它:
// MARK: MFMailComposeViewControllerDelegate Method
func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
self.dismissViewControllerAnimated(true, completion: nil)
}//end func mailComposeController
答案 1 :(得分:0)
我尝试了很多东西,包括Sebah的建议。没有这些工作。 这适用于iOS 7.x,但启动iOS 8它给了我这个问题。最后,当我从xCode 5迁移到6时,它已经解决了。我想一些兼容性问题。 xCode 5在iOS 7.x之前服务很好,但是对于iOS 8及更高版本,猜测我必须强制使用xCode 6。 这是一年前,当使用和包装你的应用程序xCode 6不是强制性的,因此我们继续使用xCode 5。