我遇到了很长一段时间以来遇到的最奇怪的问题……而且我的想法已经用完了。
所以我有一个 MFMailComposeViewController ,它通过点击 UIButton 启动,它启动邮件编写器视图就好了。您会看到我分配的主题,但在 to: 或 body 字段填充之前,窗口会闪烁并消失。它抛出这个错误:
viewServiceDidTerminateWithError: Error Domain=XPCObjectsErrorDomain Code=2 “操作无法完成。(XPCObjectsErrorDomain 错误 2。)”
现在这是疯狂的部分。如果我切换到另一个也使用 MFMailComposeViewController 的应用程序并启动该应用程序,然后切换回我的应用程序并再次启动邮件编写器,它就可以正常工作。我无法解释。
这似乎只是运行 iOS 6 而不是iPhone 5 的手机上的问题。
我四处搜寻,似乎找不到其他遇到同样问题的人。有人有什么建议吗?
我已经链接了 MessageUI.framework,我还发现这在模拟器或设备上不起作用,但是当我还链接 Security.framework 时,它开始在模拟器中工作,但它仍然不起作用在设备上。
我启动 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:@"support@domain.com"];
[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 上工作......