кнопки формы электронной почты iphone не работают

вот как выглядит моя электронная форма:

если ([MFMailComposeViewController canSendMail]) {

    MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
    mail.mailComposeDelegate = self;

    [mail setSubject:@"Hello and welcome!"];

    NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"];
    [mail setToRecipients:toRecipients];
    [mail setCcRecipients:toRecipients];

    NSString *emailBody = @"Hey all!";
    [mail setMessageBody:emailBody isHTML:NO];

    mail.modalPresentationStyle = UIModalPresentationPageSheet;
    [self presentViewController:mail animated:YES completion:nil];


} else {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error!"
                                                    message:@"E-mail is not supported on your device"
                                                   delegate:nil
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
    [alert show];
}

Электронные письма отправляются нормально, но проблема в том, что как только я нажимаю кнопку отправки, электронное письмо отправляется, но контроллер просмотра (или всплывающее окно) не закрывается. Так же не работает кнопка закрытия. Я просто не могу выйти из электронной формы.

Любые идеи?


person TomasJ    schedule 23.11.2013    source источник
comment
Вы должны реализовать метод делегата. Прочитайте документы для MFMailComposeViewController и протокол делегата. Он охватывает это.   -  person rmaddy    schedule 23.11.2013


Ответы (1)


Вы можете не звонить

уволитьViewControllerAnimated

[self dismissViewControllerAnimated:YES
                         completion:nil];

использовать это:

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

    switch (result) {
        case MFMailComposeResultCancelled:
            break;
        case MFMailComposeResultSaved:
            NSLog(@"mail saved");
            break;
        case MFMailComposeResultSent:
            NSLog(@"mail sent");
            break;
        case MFMailComposeResultFailed:
            NSLog(@"mail failed");
            break;
    }
[self dismissViewControllerAnimated:YES
                         completion:nil];
}
person Bhumeshwer katre    schedule 23.11.2013
comment
Да, конечно! У меня уже есть это в другом приложении, и я совершенно забыл добавить его. Спасибо - person TomasJ; 23.11.2013