Неисправность открытия MFMailComposeViewController на устройстве, работает в симуляторе. - PullRequest
0 голосов
/ 21 октября 2011

Я делаю это, это работает в симуляторе, но когда мы пытаемся открыть в устройстве, то программа завершается.

Плз предлагает мне быстро.

MFMailComposeViewController *mail=[[MFMailComposeViewController alloc]init];
mail.mailComposeDelegate=self;  
[mail setToRecipients:[NSArray arrayWithObjects:@"marketing@realestateinvestar.com.au",nil]];

//[self becomeFirstResponder];
mail.navigationBar.tintColor=[UIColor blackColor];
[self presentModalViewController:mail animated:YES];

Ответы [ 3 ]

0 голосов
/ 21 октября 2011

Реализовали ли вы методы MFMailComposeViewControllerdelegate в своем коде ??

#pragma mark --------------------------------------------
#pragma mark MFMailComposeViewController delegate Methods

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
    switch (result) {  
        case MFMailComposeResultCancelled:  
            NSLog(@"Mail send canceled.");  
            /* 
             Execute your code for canceled event here ... 
             */  
            break;  
        case MFMailComposeResultSaved:  
            NSLog(@"Mail saved.");  
            /* 
             Execute your code for email saved event here ... 
             */  
            break;  
        case MFMailComposeResultSent: {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Mail Sent" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
            alert.tag = 1;
            alert.delegate = self;
            [alert show];
            [alert release];
            break;  
        }
        case MFMailComposeResultFailed: {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Mail Sending Failed" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
            alert.tag = 2;
            alert.delegate = self;
            [alert show];
            [alert release];
            break;  
        }
        default:  
            break;  
    }
    [controller dismissModalViewControllerAnimated:YES];//dismissing modal view controller
}
0 голосов
/ 21 октября 2011
if ([MFMessageComposeViewController canSendText])

Ваша проблема здесь. Вы пытаетесь проверить, сможет ли устройство отправлять текстовые сообщения, а не отправлять сообщения электронной почты. вы должны попробовать использовать

if([MFMailComposeViewController canSendMail])

Возможно, проблема в том, что ваше устройство не настроено на учетные записи в почте. Пожалуйста, проверьте это один раз.

0 голосов
/ 21 октября 2011

Ваш код выглядит нормально, но вы проверили, может ли устройство отправлять почту:

if ([MFMailComposeViewController canSendText]) {
   MFMailComposeViewController *mail=[[MFMailComposeViewController alloc]init];
   mail.mailComposeDelegate=self;  
   [mail setToRecipients:[NSArray arrayWithObjects:@"marketing@realestateinvestar.com.au",nil]];

   mail.navigationBar.tintColor=[UIColor blackColor];
   [self presentModalViewController:mail animated:YES];
   [mail release], mail = nil;
} else {
    // show message to the use that he can't send an email.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...