【问题标题】:Cancel button does not dismiss ComposeMail window in iOS simulator取消按钮不会关闭 iOS 模拟器中的 ComposeMail 窗口
【发布时间】:2012-11-25 16:47:48
【问题描述】:

我的实现很简单:

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

【问题讨论】:

    标签: objective-c ios xcode mfmailcomposeviewcontroller


    【解决方案1】:

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

    mailComposer.mailComposeDelegate = self;
    

    MFMailComposeViewController 扩展 UINavigationController。所以设置delegate 是为了UINavigationControllerDelegate

    【讨论】:

    • 谢谢!我在发布问题后几分钟才发现这一点。我会在 5 分钟内标记你的答案。
    • 仅供参考 - 将来,如果您在任何人回复之前找到问题的答案,您可以删除该问题,或随时发布您自己的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多