有没有一种方法可以知道 dismissModalViewControllerAnimated 何时启动以及何时完成(例如 viewWillAppear 和 viewDidAppear 的习语)?与其他动画不同,这个动画似乎没有委托告诉您。
有没有一种方法可以知道 dismissModalViewControllerAnimated 何时启动以及何时完成(例如 viewWillAppear 和 viewDidAppear 的习语)?与其他动画不同,这个动画似乎没有委托告诉您。
是的,比你想象的要简单。
当调用dismissModalViewControllerAnimated:时,即将显示的底层视图将接收到viewWillAppear和viewDidAppear消息。
注意:确保你的视图控制器正确连接,否则这些消息可能会丢失。
我担心viewWillAppear和viewDidAppear并不总是有效。 在iPhone上,它们会运行,但在iPad上可能不会。 如果UIViewController没有全屏呈现(例如以表单表格的形式呈现),父视图将不会接收到viewWillAppear或viewDidAppear生命周期函数。不幸的是,我找到的唯一方法是创建自己的委托消息,在调用dismissModalViewControllerAnimated时被调用(通过引用或通知)。
你可以使用视图外观方法。如果你需要在动画完成后执行某些操作,可以使用[object performSelector:@selector(selector) withObject:anotherObject afterDelay:0]
。我不确定为什么,但是这个操作会被安排在当前运行循环中,但是在动画完成之后。