取消按钮不会消除iOS模拟器中的ComposeMail窗口

时间:2012-11-25 16:47:49

标签: objective-c ios xcode mfmailcomposeviewcontroller

我的实现非常简单:

.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,我的应用程序是通用应用程序。

1 个答案:

答案 0 :(得分:2)

您正在设置错误的委托。你想要:

mailComposer.mailComposeDelegate = self;

MFMailComposeViewController延伸UINavigationController。因此,设置delegate适用于UINavigationControllerDelegate