Мое приложение использует ландшафтный режим. При попытке интегрировать MFMailComposeViewController, который всегда работал для меня, в других моих приложениях в портретном режиме, я столкнулся с проблемой, что почтовый контроллер вообще не отображается. Я нашел много информации во время исследования, и я попытался переписать MFMailComposeViewController, как это предлагается здесь:
mfmailcomposeviewcontroller в альбомной ориентации
Однако, он все еще действует так же. Короче говоря, мое приложение на основе View имеет, например, главный контроллер A и другие контроллеры B и C. B открыт поверх A и имеет MFMailComposeViewController, который при запуске скрывает B и возвращается к A.
Это очень странно, но я чувствую, что это связано с иерархией представления и где именно мне нужно добавить MFMailComposeViewController. При перезаписи (как в ссылке выше) этот код не решает мою проблему:
MailCompose *controller = [[MailCompose alloc] init];
controller.mailComposeDelegate = self;
Я ценю любые дополнительные предложения.
Вот код, который я использую:
if ([MFMailComposeViewController canSendMail]){
MailCompose *picker = [[MailCompose alloc]init];
//MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];//was before I subclassed
picker.mailComposeDelegate = self;
[picker setToRecipients:[NSArray arrayWithObject:@"info@site.com"]];
[picker setSubject:@"Feedback"];
[picker setMessageBody:emailBody isHTML:YES];
picker.navigationBar.barStyle = UIBarStyleBlack;
[self presentModalViewController:picker animated:YES];
[picker release];
}