我有一个可以调用MFMailComposeViewController的按钮。有时,当我点击“删除草稿”时,应用程序会崩溃,但有时它会正确地忽略视图。我不明白为什么。下面是我的代码:
- (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 {
}
}这个方法是:
- (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];
}有谁可以帮我?
发布于 2015-03-06 23:37:17
我以前也遇到过这种情况,代码中的潜在问题可能是下面这一行:
MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];很可能在调用MFMailComposeViewControllerDelegate方法时,您的composer对象已被释放。相反,可以尝试在强属性上初始化MFMailComposeViewController,如下所示:
self.composer = [MFMailComposeViewController new];一旦对委托方法执行了操作以释放MFMailComposeViewController,就可以将self.composer设置为nil。
发布于 2013-05-20 19:56:44
您是否尝试过:
[self presentModalViewController:_picker animated:YES];注意到'MODAL‘了吗?
此外,还有:
[self dismissModalViewControllerAnimated:YES];https://stackoverflow.com/questions/16267365
复制相似问题