1

异常消息:

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[]{"blubb@blubb.de"});
        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 模拟器,但不适用于设备。

4

2 回答 2

2

将此声明移到您的方法之外。一旦超出范围,它很可能会立即获得 GC。

MFMailComposeViewController view;
于 2012-03-14T12:30:46.807 回答
1

您的设备是否配置为发送电子邮件?请注意,即使是这样,您也不应该认为每个用户设备都会出现这种情况。

MFMailComposeViewController.CanSendMail你应该这样称呼的 IWO由 Apple记录。两个重要的引述:

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

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

例子:

   if (MFMailComposeViewController.CanSendMail) {
       ... your code ...
   } else {
       ... show warning, like an UIAlertView
   }
于 2012-03-15T00:51:34.110 回答