У меня есть класс, который подкласс NSObject с функцией выполняет отображение MFMailComposeViewController. Вот код:MFMailComposeViewController не уходит с кнопкой Отмена
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
mailController.mailComposeDelegate = self;
[mailController setSubject:@"Sample Subject"];
[mailController setMessageBody:@"Here is some main text in the email!" isHTML:NO];
[mailController setToRecipients:@[self.email]];
UITabBarController *tabbarController = (UITabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
UINavigationController *navigationController = tabbarController.selectedViewController;
[navigationController.topViewController presentViewController:mailController animated:YES completion:NULL];
Все работает хорошо с этим кодом. Проблема в том, когда я хочу отклонить MFMailComposeViewController
. Когда-то я получаю сбой, иногда просто ничего не происходит. Я реализовал функцию делегата:
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
UITabBarController *tabbarController = (UITabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
UINavigationController *navigationController = tabbarController.selectedViewController;
[navigationController.topViewController dismissViewControllerAnimated:YES completion:nil];
}
После этого я попытался показать, и уволить его directlty из ViewController и все работает. Даже кнопка отмены.
Я не знаю, почему он работает в моем классе ViewController, но не в моем подклассе NSObject.
Когда я получаю аварии я видел в журналах:
-[MFMailComposeInternalViewController _notifyCompositionDidFinish]
Есть вы добавляете MFMailComposeViewDelegat e в файле заголовка ...? –
Да, да. Ну, я добавил его в файл .m, но это то же самое. –
Опубликуйте информацию, связанную с журналом сбоев, для получения дополнительной помощи. –