1

嘗試從NSObject類實現時,我遇到了MFMailComposeViewController的問題。MFMailComposeViewController從NSObject類顯示問題 - iOS

我已經使用MFMailComposeViewController多次沒有問題,但始終在視圖控制器。

但是,在這種情況下,我調用了一個將運行的NSObject類,而用戶通常在一個ViewController上。然而,這段代碼是從許多視圖控制器運行的,因此使用了NSObject,並且我需要允許作曲者通過任何視圖控制器呈現。

問題是,當完成時,它需要拋出一個電子郵件作曲家,我無法得到這個工作。相反,它從不啓動郵件編輯器視圖。

我有代表到位,代碼如下,代表在.h中設置。

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 

    if([MFMailComposeViewController canSendMail]){ 
     mc.mailComposeDelegate = self; 
     [mc setSubject:emailTitle]; 
     [mc setMessageBody:messageBody isHTML:NO]; 
     [mc setToRecipients:toRecipents]; 

     [[mc navigationBar] setTintColor: [UIColor whiteColor]]; // Text color 
     // Present mail view controller on screen 
     [self presentViewController:mc animated:YES completion:^{ 
      [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 
     }]; 

    } 


- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    switch (result) 
    { 
     case MFMailComposeResultCancelled: 
      // NSLog(@"Mail cancelled"); 
      break; 
     case MFMailComposeResultSaved: 
      // NSLog(@"Mail saved"); 
      break; 
     case MFMailComposeResultSent: 
      // NSLog(@"Mail sent"); 
      break; 
     case MFMailComposeResultFailed: 
      // NSLog(@"Mail sent failure: %@", [error localizedDescription]); 
      break; 
     default: 
      break; 
    } 

    // Close the Mail Interface 

    [self dismissViewControllerAnimated:YES completion:NULL]; 

} 

我也試圖代碼然而,轉移到AppDelegate中,並使用一個通知從NSObject類火的作曲家,使用這種方法我發現作曲家將顯示在推VC,但如果當前正在顯示模態視圖,但不顯示作曲者。最後,我嘗試添加一個完全獨立的視圖控制器,將郵件編輯器添加到它,並通過AppDelegate添加,但這也只會顯示在推送的VC上,而不是模態VC。

我的想法是,我需要找到導航堆棧的「頂部」,以顯示上面的作曲家,但我不是100%確定。

我會歡迎任何能夠展示我如何實現這一點的人的意見,因爲我確信它一定是可能的,因爲如果代碼在範圍內,我可以將MailController添加到模態視圖視圖控制器本身,但顯然這意味着我需要將這樣的代碼添加到多個VC中,儘管我可以,但它似乎是一種奇怪的方式必須繼續。

謝謝大家!

回答

1

我以爲我會回來回答這個!

MFMailComposeViewController必須在ViewController中啓動。這是設計。

+0

剛纔我碰到這個問題,並有一個預感是問題。感謝您發佈後續信息以確認我的懷疑。 – Adrian 2015-09-23 01:14:55