如何检测模态视图动画的结束(当我关闭时)?(我说的是不是我自己创建的 MFMailComposeViewController ......)
谢谢
如何检测模态视图动画的结束(当我关闭时)?(我说的是不是我自己创建的 MFMailComposeViewController ......)
谢谢
您的模态视图控制器有一个-viewDidDisappear:
方法,当视图从屏幕上移除时会自动调用该方法。你可以在你的模态视图控制器中重写这个方法来做任何你喜欢的事情。
此外,您可能需要考虑-viewDidAppear:
在视图控制器中实现该方法,该方法的视图会被您的模态视图显示出来。
您可以继承 MFMailComposeViewController 并重载其-viewDidDisappear:
.
@interface MyCtrler : MFMailComposeViewController
@end
@implementation MyCtrler
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
// do anything you like
}
@end
通常要在动画完成时收到通知,您可以通过将setAnimationDelegate:发送到 UIView 类来设置委托。
当一个 VC 被关闭时,[someVC dismissModalViewControllerAnimated:YES]
你不能设置动画代理,但是如果你发送 NO 并做你自己的 VC 视图动画,你可以设置代理并在动画完成时收到通知。
在关闭模态视图后,我需要做一些事情,并且只有在确定模态视图真的消失(完全解除分配)时才需要做一些事情。所以 viewDidDisappear 和它在模态视图中的朋友对我来说太早了。
我发现最简单的方法就是用 NSTimer 延迟我的代码。当模态视图调用其委托并且委托调用删除模态视图时,它还会将要在模态视图消失时运行的代码排队。时间大约是 300 毫秒或 400 毫秒。(有没有办法从某个地方检索实际时间?)