是否可以在没有用户交互的情况下解雇MFMailComposeViewController?

时间:2014-06-09 20:11:04

标签: ios objective-c mfmailcomposeviewcontroller

我能够在MFMailComposeViewController委托方法中成功解除我的didFinishWithResult。但是,我有一个场景,我想在没有用户交互的情况下解雇作曲家,比如选择取消或发送邮件。

我查看过苹果文档但无法找到任何完全有用的内容。我试过调用dismissViewControllerAnimated,但是当我进入didFinishWithResult委托方法时,这似乎才有效。无论如何强制该委托方法或者解雇作曲家?

1 个答案:

答案 0 :(得分:1)

假设您正在使用UIViewController展示您的邮件控制器,您可以通过调用UIViewController方法以编程方式解除它:

dismissViewControllerAnimated:completion:

请参阅此苹果参考:dismissViewControllerAnimated:completion:

你确实提到过:

  

我试过调用dismissViewControllerAnimated,但这似乎只是   当我在didFinishWithResult委托方法

内时工作

您遇到的问题可能表明存在不同的问题,因为我能够在mailComposeController:didFinishWithResult:error:委托方法之外成功完成此操作。

示例:

-(void)showMail
{
    MFMailComposeViewController *mailController = [[[MFMailComposeViewController alloc] init] autorelease];

    //Set the message, subject, etc...

    //Display
    [someViewController presentViewController:mailController animated:YES completion:nil];

    //As a proof of concept, close programmatically after a couple of seconds...
    [self performSelector:@selector(dismissMailController) withObject:nil afterDelay:2.0];
}

-(void)dismissMailController
{
    [someViewController dismissViewControllerAnimated:YES completion:nil];
}