2015-07-28 2 views
1

Я использую MFMailcomposeViewController для функции почты. но когда приложение присутствует MFMailComposeViewController текст в toReceipts подал дисплей с задержкой. Почему это так?MFMailComposer toReceiptsText с задержкой

if MFMailComposeViewController.canSendMail() 
    { 
    var mailPicker = MFMailComposeViewController() 
    mailPicker.mailComposeDelegate = self; 
    mailPicker.setSubject("hello"); 
    mailPicker.setMessageBody(txtViewBody.text, isHTML: false); 
    mailPicker.setToRecipients(["[email protected]"]) 

    self.becomeFirstResponder(); 


    presentViewController(mailPicker, animated: true, completion: { 
     println("Mail composer completion block") 
    }); 

    } 

ответ

0

Он покажет Получателя с задержкой в ​​симуляторе.
В устройстве он не будет загружаться с задержкой.

+1

Hi Другая проблема заключается в том, что при отображении MFMailComposeViewController на получение texfield идет, а затем он приходит в правильное положение. вы знаете, как его решить. –

0

Единственный способ я знаю, чтобы предотвратить нервный представление MFMailComposeViewController это частные вызовы API, но приложение будет отклонено ...

MFMailComposeViewController *mailComposeVC = [[MFMailComposeViewController alloc] init]; 
    // do your setup here 

    UIViewController *internalComposeVC = (UIViewController *) [mailComposeVC.viewControllers firstObject]; 
    // call private method to layout the view immediately 
    SEL privateSelector = NSSelectorFromString(@"_endDelayingCompositionPresentation"); 
    if ([internalComposeVC respondsToSelector:privateSelector]) { 
     ((void (*)(id, SEL))[internalComposeVC methodForSelector:privateSelector])(internalComposeVC, privateSelector); 
    } 

    // present the MFMailComposeViewController 
    [self presentViewController:mailComposeVC animated:TRUE completion:nil]; 

    // while presenting force the controller to set the recipient immediately 
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
     [internalComposeVC viewWillAppear:FALSE]; 
     [internalComposeVC viewDidAppear:FALSE]; 
    }); 

Я проверил его только с прошивкой 8