Ios NSInvalidArgumentException';,原因:';应用程序试图在目标上呈现无模式视图控制器

Ios NSInvalidArgumentException';,原因:';应用程序试图在目标上呈现无模式视图控制器,ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,我使用Xcode 7.3 beta 3创建了一封电子邮件。。我从 但在iPhone上运行应用程序后,它给了我一个错误(如下所示) *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“应用程序试图在目标上呈现一个无模式视图控制器”。*第一次抛出调用堆栈:()libc++abi.dylib:以NSException类型的未捕获异常终止 NSInvalidArgumentException',reason:'应用程序试图在目标上呈现一个nil模式视图控制

我使用Xcode 7.3 beta 3创建了一封电子邮件。。我从

但在iPhone上运行应用程序后,它给了我一个错误(如下所示)

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“应用程序试图在目标上呈现一个无模式视图控制器”。*第一次抛出调用堆栈:()libc++abi.dylib:以NSException类型的未捕获异常终止

NSInvalidArgumentException',reason:'应用程序试图在目标上呈现一个nil模式视图控制器——这意味着您尝试在目标上实现一次nil objcet检查,如果它为nil或非nil

样品

NSInvalidArgumentException',reason:'应用程序试图在目标上呈现一个nil模式视图控制器——这意味着您尝试在目标上实现一次nil objcet检查,如果它为nil或非nil

样本

Swift

出租时使用

if let mc: MFMailComposeViewController = MFMailComposeViewController() {
    mc.mailComposeDelegate = self
    mc.setSubject(emailTitle)
    mc.setToRecipients(toRecipents)
    self.presentViewController(mc, animated: true, completion: nil)
}
Swift

出租时使用

if let mc: MFMailComposeViewController = MFMailComposeViewController() {
    mc.mailComposeDelegate = self
    mc.setSubject(emailTitle)
    mc.setToRecipients(toRecipents)
    self.presentViewController(mc, animated: true, completion: nil)
}

当您收到此错误时,例如,如果您按下
showmail:(id)sender
按钮,或者其他我不太理解的地方,您能解释更多吗?当您收到此错误时
应用程序尝试在目标上显示无模式视图控制器发送方
这个或其他一些我不太理解的地方,你能解释一下吗?当你得到错误时,
应用程序试图使用相关的
MFMessageComposeViewController
在目标
上呈现一个无模式视图控制器,我也得到了这个。(代码10,Swift 4.2)。令人困惑的是,当您创建VC时,如果您等待的时间足够长(您几乎必须注释掉
present
行,MF将执行服务检测并显示其自己的警报:“无法发送消息”。使用相关的
MFMessageComposeViewController
,我也会得到这个消息。(Xcode 10,Swift 4.2).令人困惑的是,当你创建VC时,如果你等待的时间足够长(你几乎必须注释掉
present
行,MF将执行服务检测并显示自己的警报,说:“无法发送消息”。
if let mc: MFMailComposeViewController = MFMailComposeViewController() {
    mc.mailComposeDelegate = self
    mc.setSubject(emailTitle)
    mc.setToRecipients(toRecipents)
    self.presentViewController(mc, animated: true, completion: nil)
}