Vinod Vishwanath
Vinod Vishwanath

Reputation: 5891

Cancel button does not dismiss ComposeMail window in iOS simulator

My implementation is pretty simple:

In the .h file, I'm implementing MFMailComposeViewControllerDelegate

And in the .m file, I have the following bit of code:

-(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];
}

The variable imageData above is of the UIImage type, and I know for sure there's nothing wrong with it: the required image shows up properly in the compose mail window.

However clicking the Cancel button does not dismiss the Compose window. What am I missing?

Note: I'm using iOS 6 with the latest version of xcode, and my app is a Universal app.

Upvotes: 2

Views: 1752

Answers (1)

rmaddy
rmaddy

Reputation: 318774

You are setting the wrong delegate. You want:

mailComposer.mailComposeDelegate = self;

MFMailComposeViewController extends UINavigationController. So setting delegate is for the UINavigationControllerDelegate.

Upvotes: 2

Related Questions