如何知道何时启动dismissModalViewControllerAnimated以及何时完成?

时间:2009-06-13 01:05:04

标签: iphone objective-c cocoa-touch uikit

有没有办法知道何时启动dismissModalViewControllerAnimated以及何时完成(例如viewWillAppear和viewDidAppear的习语)?与其他动画不同,这个动画似乎没有代表告诉你。

3 个答案:

答案 0 :(得分:10)

是的,比你想象的要容易。

当调用dismissModalViewControllerAnimated:时,基础视图(即将出现的视图)将收到viewWillAppear消息和viewDidAppear消息。

警告:确保您的视图控制器正确连接或这些消息丢失。

答案 1 :(得分:5)

我担心viewWillAppear和viewDidAppear并不总是有效。 在iPhone上,他们可能没有。 如果呈现的UIViewController未以全屏显示(例如,如果它以表单形式呈现),则父视图将不会接收viewWillAppear或viewDidAppear生命周期函数。不幸的是,我找到的唯一方法是在调用dismissModalViewControllerAnimated时调用我自己的委托消息(通过引用或通知引用)

答案 2 :(得分:1)

您可以使用视图外观方法。如果您在动画完成后需要执行某些操作,则可以使用[object performSelector:@selector(selector) withObject:anotherObject afterDelay:0]。我不确切知道为什么,但是动作将在当前的运行循环中安排,但在动画完成后。