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タイプであり、問​​題がないことは確かです。必要な画像がメールの作成ウィンドウに正しく表示されます。

ただし、[キャンセル]ボタンをクリックしても、[作成]ウィンドウは閉じません。私は何が欠けていますか?

注:最新バージョンのxcodeでiOS 6を使用していますが、私のアプリはユニバーサルアプリです。

4

1 に答える 1

2

間違ったデリゲートを設定しています。あなたが欲しい:

mailComposer.mailComposeDelegate = self;

MFMailComposeViewController拡張しUINavigationControllerます。したがって、設定delegateUINavigationControllerDelegate

于 2012-11-25T16:54:49.953 に答える