邮件和消息不会从警报视图中消失

我有一个UIAlertView启动一个电子邮件和消息屏幕。 当用户点击警报button时,两个视图都打开,但是它们不closures。

我有一个尝试添加:

-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { [self dismissModalViewControllerAnimated:YES]; } 

对class级的身体来说却没有帮助。

以下是电子邮件的介绍:

  [viewController presentViewController:email animated:YES completion:nil]; 

编辑这里是我用来显示电子邮件的整个代码:

 //send email... -(void)sendEmail{ //mail composer Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if(mailClass != nil){ if([mailClass canSendMail]){ //get the current view controller from the App Delegate apptester_appDelegate *appDelegate = (apptester_appDelegate *)[[UIApplication sharedApplication] delegate]; UIViewController *viewController = [appDelegate getViewController]; MFMailComposeViewController *email = [[MFMailComposeViewController alloc] init]; email.mailComposeDelegate = self; //navigation bar color depends on iOS7 or lower... if(floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){ [[email navigationBar] setTintColor:[UIColor blackColor]; }else{ [[email navigationBar] setBarTintColor:[UIColor blackColor]]; } //show the model view... [viewController presentViewController:email animated:YES completion:nil]; } } } 

有谁遇到过这个错误?

这可能不相关,但这个应用程序有一个标签栏。

确保你已经设置了邮件控制器的委托

  mail.mailComposeDelegate = viewController; 

也试试这个,

  [viewController.tabBarController presentViewController:email animated:YES completion:nil]; 

你有没有尝试这种方法,并通过“控制器”而不是自己:

  -(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { [controller dismissViewControllerAnimated:YES completion:nil]; } 

谢谢!

提交控制人员的责任是解散模态视图。 确保你在呈现控制器中实现了模态的委托。

两件事情:

1)确保在mailComposeDelegate之前在MFMailComposeViewController上设置mailComposeDelegate

2)在你的mailComposeController:didFinishWithResult:error:方法中,你应该这样做:

 [controller dismissModalViewControllerAnimated:YES];