首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFMailComposeViewController not dismiss with Cancel按钮

MFMailComposeViewController not dismiss with Cancel按钮
EN

Stack Overflow用户
提问于 2016-12-26 17:44:09
回答 0查看 462关注 0票数 0

我有一个类,它是带有函数的NSObject的子类,可以显示一个MFMailComposeViewController。代码如下:

代码语言:javascript
复制
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的时候。有时候我会崩溃,有时候什么都不会发生。我已经实现了委托函数:

代码语言:javascript
复制
- (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];
}

在那之后,我试着在ViewController上直接显示并关闭它,一切都在工作。甚至是取消按钮。

我不知道为什么它在我的ViewController类中有效,但在我的NSObject子类中无效。

当我在日志中看到崩溃时:

代码语言:javascript
复制
-[MFMailComposeInternalViewController _notifyCompositionDidFinish]
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41329233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档