2012-03-14 4 views
1

Сообщение исключения:NSInvalidArgumentException, представляя ModalView

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 эмуляторе, но не на устройстве.

+0

Если @Jason ответ не работает, то пожалуйста, напишите полный журнал StackTrace/аварии. – poupou

ответ

1

Настроено ли устройство для отправки писем? обратите внимание, что даже если вы не считаете, что это будет иметь место на всех пользовательских устройствах.

IWO вы должны позвонить по телефону MFMailComposeViewController.CanSendMail, как это documented от Apple. Два важных цитат:

вы всегда должны проверить, чтобы увидеть, если текущее устройство сконфигурировано для отправки электронной почты на всех, используя метод canSendMail

и

Вы не должны пытаться использовать этот интерфейс, если метод canSendMail возвращает NO.

Пример:

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

О, боже, я забыл настроить EmailAccount на iPad. Задача решена. Спасибо за вашу помощь. – Alex

2

Переместить это заявление за пределы вашего метода. Скорее всего, он получает GC, как только он выходит за рамки.

MFMailComposeViewController view; 
+0

не работает. то же исключение – Alex

Смежные вопросы