2014-10-24 1 views
0

Мне удалось найти ошибку в iOS8.1 при использовании RESideMenu и попытке отправить почту.Ошибка утверждения в MFMailComposeInternalViewController - должна быть отложена презентация

Я использую котельную табличку MFMailComposer (отлично работает на простых проектах), но, кажется, разбивается при вызове в RESIDMenu.

Пробовал нижеследующий код (абсолютно функциональный без RESIDMENU) как в ObjC, так и в Swift, на iPhone6 ​​и iPhone5, без изменений.

var mc: MFMailComposeViewController! 
func shareTest() 
{ 
     if MFMailComposeViewController.canSendMail() 
     { 
      mc = MFMailComposeViewController() 
      mc.setSubject("subject") 
      mc.setToRecipients(["[email protected]"]) 
      mc.setMessageBody("...", isHTML: false) 
      mc.mailComposeDelegate = self 
      self.presentViewController(mc, animated: true, completion: nil) 
     } 
} 

func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) { 
    self.dismissViewControllerAnimated(true, completion: nil) 

} 

Текст утверждение:

*** отказ Assertion в - [MFMailComposeInternalViewController _endDelayingCompositionPresentation], /SourceCache/MessageUI/MessageUI-1466.1.2/Mail/MFMailComposeInternalViewController.m:322

*** Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «должна иметь задержанную презентацию»

Вызов текущего монитора в диспетчере_после ~ 5 - 10 секунд не решает проблему. Netiher вызывает его из контроллера корневого представления вместо текущего.

Кроме того, поиск «должен иметь задержанную презентацию» не содержит ничего в google.

ответ

0

Возвращаясь к сообщению «мое решение» здесь, так как мне было напомнено об этом в RESideMenu repo и в противном случае не было ответов.

После большой отладки моего собственного кода выясняется, что проблема была в библиотеке, которую я использовал.

Я переключился с RESIDMenu на SWReveal, а после этого - никаких проблем с MFMailComposer или экспортом, поэтому для RESIDMenu, похоже, нерешенная ошибка.