我正在动态添加TabBarItem(电子邮件)。当我完成我的电子邮件时,我正在调用'dismissModalViewControllerAnimated'但它只是解雇邮件视图。如何卸载视图控制器?
在我的电子邮件视图控制器中,我正在执行以下操作:
- (void)viewDidLoad => I would like to unload this view controller
{
[super viewDidLoad];
[self showEMail:nil]; => this display and dismisses email (I'm not calling present.. and dismiss... in a row. I'm using delegate methods to present and dismiss, which is fine.)
[self presentModalViewController:picker animated:YES];
[self dismissModalViewControllerAnimated:YES];
}
选择我的标签栏项目后,它正在加载视图控制器(让我们说'ABC视图控制器'),它正在呈现我的邮件模态控制器。邮件模态控制器正在被正确解雇。但是我想在卸载'ABC视图控制器'后回到之前选择的标签项。可能吗?或者我在这里做错了什么?
提前致谢
拉马
答案 0 :(得分:0)
在你的代码中,连续调用[self presentModalViewController ...]和[self dismissModalViewController ...]是没有意义的。
你应该首先调用[self presentModalViewController ...],将呈现视图控制器作为委托(例如picker.delegate = self)
让模态视图控制器执行其业务,包括退出(如用户命中取消,关闭或其他),然后调用委托方法(类似[delegate didFinish ...]或[delegate didCancel ...]
现在它是呈现视图控制器的响应委托方法调用,你可以在这里解雇模态视图控制器
注意:许多UIKit类都练习这种模式,例如UIAlertView,UIActionSheetView,MPMoviePlayerViewController等。你应该检查它们并制作你自己的
答案 1 :(得分:0)
我通过使用ViewWiilAppear方法显示邮件模态演示者来解决问题。
我在解雇邮件模态演示者后选择了标签栏控制器的索引。
self.tabBarController.selectedIndex = 0;
这解决了我的问题。
干杯