У меня есть самая странная проблема, с которой я столкнулся в течение длительного времени... и у меня закончились идеи.
Итак, у меня есть MFMailComposeViewController, который запускается из-за нажатия на UIButton, и он отлично запускает представление композитора. Вы видите тему, которую я назначил, но перед полями: или body заполняются вид окна вспышек и исчезает. Это вызывает эту ошибку:
viewServiceDidTerminateWithError: Error Domain = XPCObjectsErrorDomain Code = 2 "Операция не может быть выполнена. (XPCObjectsErrorDomain ошибка 2.)"
Теперь вот сумасшедшая часть. Если я переключусь на другое приложение, которое также использует MFMailComposeViewController и запустит его, вернитесь в мое приложение и снова запустите почтовый композитор, он работает нормально. Я не могу это объяснить.
Это только кажется проблемой на телефонах под управлением iOS 6, которые не являются iPhone 5.
Я искал вокруг и не могу найти кого-либо другого, кто испытал эту же проблему. У кого-нибудь есть предложения?
У меня связан MessageUI.framework, и я также обнаружил, что это не работает в Simulator или на устройстве, но когда я также связал Security.framework, он начал работать в Simulator, но он все еще не работает Не работайте на устройствах.
Мой код запуска MFMailComposeViewController ниже:
в файле .h
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
в .m файле
-(void)displayComposerSheet {
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Support Request"];
// Set up recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"];
[picker setToRecipients:toRecipients];
// Fill out the email body text
NSString *emailBody = @"\n\nEmail from iOS";
[picker setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];
}
// Dismisses the email composition interface when users tap Cancel or Send. Proceeds to update the message field with the result of the operation.
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[self dismissModalViewControllerAnimated:YES];
}
Обновление: Я думаю, что я сузил его до настроек, которые я передал делегату внешнего вида для UINavigationBar. У меня есть пользовательский шрифт, и если я отключу его, похоже, это сработает... но почему это будет работать на iPhone5...