2013-02-11 3 views
0

Я разрабатываю приложение, которое работает на всех целевых симуляторах развертывания (5.0-6.1) и на моих iPhone 3GS, 4, 4S и Gen 2 iPad. У меня была возможность сегодня попробовать запустить его на iPad Mini. Я работаю везде, кроме тех случаев, когда я пытаюсь перейти к объекту MFMailComposeViewController, чтобы отправить электронное письмо, которое вызывает его сбой с исключением.iPad Mini crashing on modal segue

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

Я связан с MessageUI.framework импортировали классы:

#import <MessageUI/MessageUI.h> 
#import <MessageUI/MFMailComposeViewController.h> 

Делегат установлен. Вот код:

-(void)displayComposerSheet 
{ 
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    picker.mailComposeDelegate = self; 

    [picker setSubject:@"Contact Email"]; 

    // Set up recipient 
    NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"]; 
    [picker setToRecipients:toRecipients]; 

    // [self presentModalViewController:picker animated:YES]; 
    [self presentViewController:picker animated:YES completion:NULL]; 
} 

Возможно, произошла ошибка, вызывающая это в iPad Mini? У меня нет других новых устройств, на которых я могу попробовать, поэтому я не уверен, что это проблема Mini или что-то большее. Любая помощь будет оценена по мере того, как я готов представить Apple, но я не хочу этого делать с ошибкой.

+0

Я заметил, что проблема заключается в том, что выборщик равен NULL, когда я добавляю NSLog (@ "picker% @", picker) к методу. Поэтому по какой-то причине он не получает alloc/init'd должным образом. Как я уже сказал, для всех других устройств он создал объект и работает. – Bob

ответ

1

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

Обязательно сначала вызовите функцию MFMailComposeViewController .

1

Попробуйте оборачивать код MFMailComposeViewController с

if ([MFMailCompseViewController canSendMail]) 

Я предположил бы, что устройство не имеет настройки почты на него.

Смежные вопросы