2

我的实现很简单:

.h文件中,我正在实施MFMailComposeViewControllerDelegate

.m文件中,我有以下代码:

-(void)MailCurrentViewAsAttachment
{   
    if ( [MFMailComposeViewController canSendMail] ) {
        MFMailComposeViewController * mailComposer = [[MFMailComposeViewController alloc] init];
        mailComposer.delegate = self;
        [mailComposer addAttachmentData:imageData mimeType:@"image/jpeg" fileName:@"attachment.jpg"];

        [self presentViewController:mailComposer animated:YES completion:nil];
    }
}

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

上面的变量imageData是 UIImage 类型的,我确信它没有任何问题:所需的图像在撰写邮件窗口中正确显示。

但是,单击“取消”按钮不会关闭“撰写”窗口。我错过了什么?

注意:我使用 iOS 6 和最新版本的 xcode,我的应用是通用应用。

4

1 回答 1

2

您设置了错误的代表。你要:

mailComposer.mailComposeDelegate = self;

MFMailComposeViewController延伸UINavigationController。所以设置delegate是针对UINavigationControllerDelegate.

于 2012-11-25T16:54:49.953 回答