我在Tabbar中有一个包含5个项目的故事板应用程序。我为每个标签项使用单独的导航控制器。
当我在Tabbar中选择第4项时,导航控制器会加载初始视图控制器。然后我又推了2个控制器。导航堆栈中的第三个视图控制器包含一个按钮,允许我发送电子邮件。因此,当我点击按钮时,我将使用以下代码呈现“MFMailComposeViewController”。
if([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailCont = [[MFMailComposeViewController alloc] init];
mailCont.mailComposeDelegate = self;
[mailCont setToRecipients:[NSArray arrayWithObject:self.lblEmail.text]];
[mailCont setSubject:@"Your email"];
[mailCont setMessageBody:@"Your message" isHTML:NO];
[self presentViewController:mailCont animated:YES completion:nil];
}
然后在我的“didFinishWithResult”代表中,我正在驳回所提交的邮件撰写视图。但它从我的导航堆栈和应用程序中解除了额外的2个视图控制器在导航控制器的根视图中。
我尝试了各种方法来解除所提供的邮件撰写视图。 请参阅下面的代码段。
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult: (MFMailComposeResult)result error:(NSError*)error
{
//... 1st approach ...
[self dismissViewControllerAnimated:YES completion:nil];
//... 2nd approach ...
[controller dismissViewControllerAnimated:YES completion:nil];
//... 3rd approach ...
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
}
请帮帮我,我和他坐了好几个小时。
非常感谢你。