邮件和消息不会从警报视图中消失
我有一个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];