我正在关注Apple's guide来构建自己的自定义容器视图控制器。它看起来工作得很好,除了一个令人烦恼的问题。中继外观方法正确调用自定义容器视图控制器
我该如何指定我的子视图控制器在哪个时间将收到viewWillAppear:
和viewDidAppear:
调用(及其对应的disappear
)?
比方说,我有一个幻想的孩子滑入父母或类似的动画。很自然,我想在动画开始时调用viewWillAppear:YES
,并在结束时调用viewDidAppear:YES
。但是,默认情况下,在将孩子的视图添加到家长的视图中时,同时调用viewWillAppear:NO
和viewDidAppear:NO
。
现在,我知道有beginAppearanceTransition:animated:
和endAppearanceTransition
方法,在iOS 6中添加的,但我想支持的iOS 5,它也好像他们是为了在先进的情况下使用:
一旦将一个孩子添加到一个容器中,一旦事件发生需要消息被转发, 会自动将旋转和外观回调转发给子视图 控制器。这通常是您想要的行为,因为它确保 所有事件都已正确发送。但是,有时默认的 行为可能会按照您的容器的 没有意义的顺序发送这些事件。例如,如果多个子项同时更改其视图状态,则可能需要合并所有更改,以便 外观回调全部同时发生在更多 逻辑顺序中。要做到这一点,您需要修改您的容器类别,以承担外观或旋转回调的责任 。
还有transitionFromViewController:toViewController:duration:options:animations:completion:
方法,在适当的时候调用外观的方法,但它需要在动作二视图控制器,一般在这里看出来的地方。当然,我可以做的伎俩,喂它一个虚拟的孩子,但严重...
有什么我失踪?任何帮助将不胜感激。