Приложение ios: приложение попыталось представить контроллер модального просмотра nil
Я разрабатываю приложение, необходимо открыть композитор электронной почты нажатием кнопки UIAlertView.
Сообщение
которое находится в тексте сообщения электронной почты, копируется из UITextView. Я использую следующий снимок кода:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0)
{
// opening message composer
}
else
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Test mail"];
[picker setMessageBody:messageBody.text isHTML:YES];
[self presentViewController:picker animated:YES completion:NULL];
}
}
// mail compose delegate
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:NULL];
}
но проблема в том, что я получаю сообщение об ошибке, заявляя, что приложение пыталось представить на своем контроллере nil modal view. как мы можем открыть почтовый композитор по умолчанию в ios 7?
Ответы
Ответ 1
В соответствии с Apple, вы должны проверить, что MFMailComposeViewController могут отправлять вашу почту непосредственно перед отправкой
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
if ([MFMailComposeViewController canSendMail]) {
picker.mailComposeDelegate = self;
[picker setSubject:@"Test mail"];
[picker setMessageBody:messageBody.text isHTML:YES];
[self presentViewController:picker animated:YES completion:NULL];
}
Ссылка: URL-адрес Apple Dev
Ответ 2
Забытие конфигурации учетной записи электронной почты в настройках устройства также может привести к этой ошибке. Проверьте, настроена ли учетная запись электронной почты на вашем устройстве или нет.