У меня очень простая реализация MFMailComposeViewController. Это работает очень хорошо - я передаю строку из своего приложения, которая будет отправлена по электронной почте, а затем коснусь «отправить», и электронное письмо отправит. Нет проблем.
Однако, если я коснусь кнопки «Отмена», приложение вылетит (EXC_BAD_ACCESS). Должен ли я реализовать специальный метод для отмены MFMailComposeViewController? Кнопка отправки автоматически сделает это правильно, а кнопка отмены - нет. В чем разница между ними (за исключением того, что в одном случае электронное письмо будет отправлено, а в другом - нет)?
Вот мой код:
#pragma mark - EMail
-(IBAction)emailCurrentPage:(id)sender {
NSString *textToBeSend = @"Test";
MFMailComposeViewController *mailComposer;
mailComposer=[[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate=self;
[mailComposer setMessageBody:textToBeSend isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
if (error) {
NSString *msgOFF = [[NSString alloc] initWithFormat:@"I could not send the e-mail for the following reason: %@", error];
UIAlertView *alertOFF = [[UIAlertView alloc]
initWithTitle:@"Error"
message:msgOFF
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertOFF show];
[alertOFF release];
[msgOFF release];
}
[self dismissModalViewControllerAnimated:NO];
}