首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按"Delete Draft“时MFMailComposeViewController崩溃

按"Delete Draft“时MFMailComposeViewController崩溃
EN

Stack Overflow用户
提问于 2013-04-29 04:16:33
回答 2查看 896关注 0票数 2

我有一个可以调用MFMailComposeViewController的按钮。有时,当我点击“删除草稿”时,应用程序会崩溃,但有时它会正确地忽略视图。我不明白为什么。下面是我的代码:

代码语言:javascript
复制
- (IBAction)openEmail:(id)sender {
if ([MFMailComposeViewController canSendMail]) {
    MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
    composer.mailComposeDelegate = (id)self;
    NSArray *myEmail = [[NSArray alloc] initWithObjects:@"me@gmail.com", nil];
    [composer setToRecipients:myEmail];
    [self presentViewController:composer animated:YES completion:nil];
    [[composer navigationBar] setTintColor:[UIColor colorWithRed:0.843 green:0.435 blue:0.435 alpha:1]];
}
else {

   }
}

这个方法是:

代码语言:javascript
复制
- (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 send");

        break;
    case MFMailComposeResultFailed:
        NSLog(@"Mail failed");

        break;
    default:
        NSLog(@"Mail not sent.");

        break;
}
[self dismissViewControllerAnimated:YES completion:nil];
}

有谁可以帮我?

EN

回答 2

Stack Overflow用户

发布于 2015-03-06 23:37:17

我以前也遇到过这种情况,代码中的潜在问题可能是下面这一行:

代码语言:javascript
复制
MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];

很可能在调用MFMailComposeViewControllerDelegate方法时,您的composer对象已被释放。相反,可以尝试在强属性上初始化MFMailComposeViewController,如下所示:

代码语言:javascript
复制
self.composer = [MFMailComposeViewController new];

一旦对委托方法执行了操作以释放MFMailComposeViewController,就可以将self.composer设置为nil

票数 1
EN

Stack Overflow用户

发布于 2013-05-20 19:56:44

您是否尝试过:

代码语言:javascript
复制
[self presentModalViewController:_picker animated:YES];

注意到'MODAL‘了吗?

此外,还有:

代码语言:javascript
复制
[self dismissModalViewControllerAnimated:YES];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16267365

复制
相关文章

相似问题

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