微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MFMailComposeViewController – iPad

我设置了一个MFMailComposeViewController,它的工作原理在iPhone上很好,但在iPad上崩溃,说:

*** Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: 'Application tried to present a nil modal view controller on target...

那么为什么会创建一个零模式视图?

MFMailComposeViewController *message = [[MFMailComposeViewController alloc] init];
    [message setMessageBody:@"My message here"  isHTML:NO];
    [message setToRecipients:[NSArray arrayWithObject:@"my@domain.com"]];
    [message setSubject:@"Request Info"];
    message.mailComposeDelegate = self;
    if (UI_USER_INTERFACE_IdioM() == UIUserInterfaceIdiomPad)
        message.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentModalViewController:message animated:YES];
    [message release];

有任何想法吗?

解决方法

Loos像MFMailComposeViewController不是由于某种原因创建的,因此具有nil值。检查它是否为nil之前提出它(虽然这个解决方法没有回答这里出错了…)。

您还应该执行检查邮件编写者是否可以发送邮件,然后尝试创建和使用canSendMail方法(如果没有邮件帐户设置在设备上显示它将返回否):

if ([MFMailComposeViewController canSendMail]){
    // Create and show composer
 }
 else{
   // Show some error message here
 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐