- Handling mail draft ( i.e. MFMailComposeResultSaved ) in MFMailComposeViewControllerDelegate
- -(void)showEmailComposer;
- -(void) displayComposerSheet;
- -(void)showEmailComposer {
- NSLog(@"showEmailComposer: begin");
- Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
- if (mailClass != nil)
- {
- if ([mailClass canSendMail]) {
- NSLog(@"showEmailComposer: Calling displayComposerSheet");
- [self displayComposerSheet];
- }
- }
- }
- #pragma mark -
- #pragma mark Compose Mail
- -(void) displayComposerSheet {
- mailComposer = [[MFMailComposeViewController alloc] init];
- mailComposer.mailComposeDelegate = self;
- [self presentModalViewController:mailComposer animated:YES];
- }
- -(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
- NSString *alertTitle;
- NSString *alertMsg;
- // Notifies users on errors, if any
- switch (result) {
- case MFMailComposeResultCancelled:
- alertTitle = @"Cancelled";
- alertMsg = @"Mail composition got cancelled";
- break;
- case MFMailComposeResultSaved:
- alertTitle = @"Success - Saved";
- alertMsg = @"Mail got saved successfully!";
- break;
- case MFMailComposeResultSent:
- alertTitle = @"Success - Sent";
- alertMsg = @"Mail sent successfully!";
- break;
- case MFMailComposeResultFailed:
- alertTitle = @"Failure";
- alertMsg = @"Sending the mail failed";
- break;
- default:
- alertTitle = @"Failure";
- alertMsg = @"Mail could not be sent";
- break;
- }
- UIAlertView *alert = [[UIAlertView alloc]
- initWithTitle:alertTitle
- message:alertMsg
- delegate:nil
- cancelButtonTitle:@"OK"
- otherButtonTitles:nil];
- [alert show];
- [self dismissModalViewControllerAnimated:YES];
- }