Я звоню MFMailComposeViewController
от a UITableViewController
. Проблемой является метод делегата, никогда не называется, когда я нажимаю кнопку Cancel или Send в Почте, составляют окно:
mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult
Вот класс табличного представления:
@implementation DetailsTableViewController
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section==0 && indexPath.row==4) {
//SEND MAIL
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
if ([MFMailComposeViewController canSendMail]) {
[controller setSubject:[NSString stringWithFormat:@"Ref %@",[item objectForKey:@"reference"]]];
[controller setMessageBody:@" " isHTML:NO];
[controller setToRecipients:[NSArray arrayWithObject:[item objectForKey:@"email"]]];
[self presentModalViewController:controller animated:YES];
}
[controller release];
}
}
- (void)mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
// NEVER REACHES THIS PLACE
[self dismissModalViewControllerAnimated:YES];
NSLog (@"mail finished");
}
Приложение не отказывает. После того, как кнопка Cancel или Send нажимается, Составить Окно остается на экране с отключенными кнопками. Я могу выйти из приложения, нажимающего клавишу Home.
Я могу открыться, другие Модальные Представления формируют TableView, но не MailCompose.
Сигнатура вашего метода неверна:
- (void)mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
Должно быть:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error