邮件 TabBarItem dismissModalViewControllerAnimated
Posted
技术标签:
【中文标题】邮件 TabBarItem dismissModalViewControllerAnimated【英文标题】:Mail TabBarItem dismissModalViewControllerAnimated 【发布时间】:2012-04-15 00:21:10 【问题描述】:我正在动态添加 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 视图控制器”后返回之前选择的选项卡项。是否可以?还是我在这里做错了什么?
提前致谢
罗摩
【问题讨论】:
【参考方案1】:Rama,你的问题很难理解。也许您需要为您呈现的视图控制器使用委托。
在您的代码中,连续调用 [self presentModalViewController...] 和 [self dismissModalViewController...] 没有意义。
您首先应该调用 [self presentModalViewController...],将呈现视图控制器设为委托(例如,picker.delegate = self)
让模态视图控制器执行其业务,包括退出(如用户点击取消、关闭或其他),然后调用委托方法(如 [delegate didFinish...] 或 [delegate didCancel...]
现在轮到呈现视图控制器响应委托方法调用了,您可以在此处关闭模态视图控制器
注意:许多 UIKit 类都采用这种模式,例如 UIAlertView、UIActionSheetView、MPMoviePlayerViewController 等。你应该检查它们并制作自己的
【讨论】:
抱歉没有说清楚。我不是在打电话给礼物……然后解雇……连续。我正在使用委托方法来呈现和关闭,这很好。但是如何卸载我的视图控制器? 在选择我的标签栏项目后,它正在加载显示我的邮件模式控制器的视图控制器(比如说“ABC 视图控制器”)。邮件模式控制器被正确解除。但我想在卸载“ABC 视图控制器”后返回之前选择的选项卡项。是否可以?还是我在这里做错了什么? 你想回到其他标签栏吗? 是的,我还需要在他们单击选项卡项时重新启动模态演示者。我已经通过使用下面提到的 select index 和 viewwillappear 方法解决了这个问题。感谢您的建议。欢呼【参考方案2】:我已经通过使用 ViewWiilAppear 方法来显示邮件模式演示者解决了问题。
我在关闭邮件模式演示者后选择标签栏控制器的索引。
self.tabBarController.selectedIndex =0;
这解决了我的问题。
干杯
【讨论】:
以上是关于邮件 TabBarItem dismissModalViewControllerAnimated的主要内容,如果未能解决你的问题,请参考以下文章