异常消息:

Objective-C exception thrown.  Name: NSInvalidArgumentException Reason:
Application tried to present a nil modal view controller on target <Navigator: 0x1bed0d0>.

这是我的代码:
    partial void BtnTest (MonoTouch.Foundation.NSObject sender)
    {
        MFMailComposeViewController view = new MFMailComposeViewController();
        view.SetToRecipients(new string[]{"[email protected]"});
        view.SetMessageBody("Hier steht nun der zusammengestellt text :)", false);
        //view.MailComposeDelegate = new CustomMailComposeDelegate();
        view.SetSubject("Test");

        view.Finished += (s,e)=>
                     {
                            this.NavigationController.DismissModalViewControllerAnimated(true);
        };

        this.BeginInvokeOnMainThread(()=>
        {
            this.NavigationController.PresentModalViewController(view, true);
        });

    }

它可以在iPad Emulator上运行,但不能在设备上运行。

最佳答案

您的设备是否配置为发送电子邮件?请注意,即使是这样,您也不应该在每个用户设备上都这样。

IWO您应该调用MFMailComposeViewController.CanSendMail,例如Apple的documented。两个重要的报价:

您必须始终检查是否使用canSendMail方法将当前设备配置为完全发送电子邮件



如果canSendMail方法返回NO,则不应尝试使用此接口。

例:

   if (MFMailComposeViewController.CanSendMail) {
       ... your code ...
   } else {
       ... show warning, like an UIAlertView
   }

09-30 11:56