如何检测模态视图动画的结束(当我执行dismiss时)?(我在谈论的是不是由我自己创建的MFMailComposeViewController...)
谢谢
如何检测模态视图动画的结束(当我执行dismiss时)?(我在谈论的是不是由我自己创建的MFMailComposeViewController...)
谢谢
-viewDidDisappear:
方法,每当视图从屏幕上移除时都会自动调用。您可以在模态视图控制器中重写此方法以执行任何您想要的操作。-viewDidAppear:
方法,在您的模态视图消失后,显示您的视图控制器的视图。-viewDidDisappear:
方法。@interface MyCtrler : MFMailComposeViewController
@end
@implementation MyCtrler
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
// do anything you like
}
@end
在关闭模态视图后,我需要执行某些操作,但只有在确保模态视图已经完全释放(dealloc-ed)之后才能执行。因此,对于我来说,viewDidDisappear及其在模态视图中的相关方法都太早了。
我发现最简单的方法是使用NSTimer延迟我的代码。当模态视图调用其委托并且委托调用删除模态视图时,它还会将要在模态视图消失时运行的代码排队。时间大约为300ms或400ms。(是否有一种方法可以从某个地方检索实际的时间?)
[someVC dismissModalViewControllerAnimated:YES]
解散 VC 时,无法设置动画委托。但是,如果您发送 NO 并自己动画 VC 的视图,则可以设置代理并在动画完成时收到通知。+setAnimationDelegate:
是一个类方法,而不是实例方法。 - kennytm