iOS Mail Composer不会被忽略

tal*_*ght 6 email xcode objective-c ios

我试图截取屏幕截图并使用邮件编辑器发送电子邮件.一切都很好,除了邮件作曲家不会解散.这篇文章似乎有同样的问题,但提供的解决方案对我不起作用.无法解除iPhone中的电子邮件作曲家视图?

- (IBAction)Email:(id)sender {
UIGraphicsBeginImageContext(self.view.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData * imageData = UIImageJPEGRepresentation(image, 1.0);

if ( [MFMailComposeViewController canSendMail] ) {
    MFMailComposeViewController * mailComposer = [[[MFMailComposeViewController alloc] init] autorelease];
    mailComposer.delegate = self;
    [mailComposer setSubject:@"Risk Assessment"];
    [mailComposer addAttachmentData:imageData mimeType:@"image/jpeg" fileName:@"attachment.jpg"];     
    [self presentModalViewController:mailComposer animated:YES];        
}
}
Run Code Online (Sandbox Code Playgroud)

上面的代码效果很好.我怎么称呼这个底部.似乎编译器只是跳过了它.

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{
if (error){
    NSString *errorTitle = @"Mail Error";
    NSString *errorDescription = [error localizedDescription];
    UIAlertView *errorView = [[UIAlertView alloc]initWithTitle:errorTitle message:errorDescription delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [errorView show];                
    [errorView release];
}
[controller dismissModalViewControllerAnimated:YES];

}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Ber*_*lor 17

尝试

mailComposer.mailComposeDelegate = self;
Run Code Online (Sandbox Code Playgroud)

代替

mailComposer.delegate = self;
Run Code Online (Sandbox Code Playgroud)

MFMailComposeViewController文档:

@property(nonatomic,assign) id<MFMailComposeViewControllerDelegate> mailComposeDelegate;
Run Code Online (Sandbox Code Playgroud)

委托对象负责在适当的时间解除此视图控制器提供的视图.因此,您应始终提供委托,该对象应实现MFMailComposeViewControllerDelegate协议的方法.