Unable to dismiss MFMailComposeViewController, delegate not called Unable to dismiss MFMailComposeViewController, delegate not called ios ios

Unable to dismiss MFMailComposeViewController, delegate not called


Make sure you use

controller.mailComposeDelegate = self;

and not

controller.delegate = self;


Your method signature is incorrect:

- (void)mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult:(MFMailComposeResult)result error:(NSError*)error

Should be:

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error


Refer this article for full implementation : http://www.ioscreator.com/tutorials/send-email-from-an-app

working code after making removing deprecated one :

#import <MessageUI/MFMailComposeViewController.h>@interface SettingsTableViewController () <MFMailComposeViewControllerDelegate, UITextFieldDelegate, UITextViewDelegate>@end@implementation SettingsTableViewController// add default methods-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {    NSInteger sectionNum = indexPath.section;    NSInteger rowNum = indexPath.row;    if (sectionNum == 2 && rowNum == 1) {        MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];        controller.mailComposeDelegate = self;        if ([MFMailComposeViewController canSendMail]) {            [controller setSubject:[NSString stringWithFormat:@"Invitation to Northstar app"]];            [controller setMessageBody:@" " isHTML:NO];//            [controller setToRecipients:[NSArray arrayWithObject:[item objectForKey:@"email"]]];            //presentViewController:animated:completion:            [self presentViewController:controller animated:YES completion:NULL];        }    }}- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error{            NSLog (@"mail finished");    [self dismissViewControllerAnimated:YES completion:NULL];}@end