0

我已经(成功)实施了

mailComposeController:didFinishWithResult:error:

在我的应用程序的其他部分中关闭邮件撰写视图的方法,用户点击我提供的特定图标来发送电子邮件。我知道我必须设置委托并处理用户的“didFinishWithResult”操作。现在在另一部分,我打开一个文档并使用

UIBarButtonSystemItemAction, Document controller, and presentOptionsMenuFromBarButtonItem: method,

我允许用户以 PDF 格式通过电子邮件发送文档。现在 PDF 已成功附加到邮件中,并且可以在输入电子邮件地址后发送。我的问题是发送邮件后,撰写视图没有被关闭。取消草稿/保存草稿选项后也不会被解雇。我想我可能需要一个实现

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 

但我似乎无法使用这种方法。(并且在使用 presentOptionsMenuFromBarButtonItem: 时不应该自动处理这个问题吗?)。我可能错误地设置了委托。如果有一些内置的方式应该被处理,或者,应该如何为此设置委托,任何人都可以阐明一下。

4

2 回答 2

0

如果我没听错,我也有类似的问题。

你需要把它放在 ViewDidLoad 之后:

// MARK: MFMailComposeViewControllerDelegate Method
func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
     self.dismissViewControllerAnimated(true, completion: nil)
}//end func mailComposeController
于 2015-06-29T11:07:08.900 回答
0

我尝试了很多东西,包括 Sebah 的建议。这些都不起作用。这在 iOS 7.x 上运行良好,但从 iOS 8 开始它给了我这个问题。最后,当我从 xCode 5 迁移到 6 时,它自己解决了。我猜是一些兼容性问题。xCode 5 在 iOS 7.x 之前运行良好,但对于 iOS 8 及更高版本,我猜我必须强制使用 xCode 6。这是一年前,当使用 xCode 6 并打包您的应用程序时不是强制性的,因此我们继续使用x代码 5。

于 2015-09-08T18:35:22.770 回答