willMoveToParentViewController:

1.- (void)willMoveToParentViewController:(UIViewController *)parent;
在添加或移除view controller之前被调用。
当你的view controller需要知道它已经被添加到一个容器中时,它能重写这个方法。
如果你正实现一个你自己的容器view controller,在调用removeFromParentViewController:方法之前,它必须调用这子view controller的willMoveToParentViewController:方法,然后传入nil。
当你自定义的容器调用addChildViewController:方法时,它自动调用将被作为子代添加的view controller的willMoveToParentViewController:方法。

parent 父view controller,如果没有就传nil

2.- (void)removeFromParentViewController;
从父代移除这个view controller。
这个方法只被一个自定义的容器view controller实现时试图调用,如果你重写这个方法,你必须在你的实现里调用super。

3.- (void)beginAppearanceTransition:(BOOL)isAppearing animated:(BOOL)animated;
告诉一个子controller,他的外观将要改变。
如果你正实现一个自定义的容器controller,用这个方法告诉它的子代那它的view将要显示或者消失。不直接调用viewWillAppear:,viewWillDisappear:,viewDidAppear:,或者viewDidDisappear。

isAppearing 如果子view controller将要被添加进view层级内,是YES;如果被移除就是NO。
animated 如果是YES,过渡将是动画的。

4.- (void)endAppearanceTransition;
告诉子controller,它的外观已经被改变。
如果你正实现一个自定义的容器controller,用这个方法告诉子代,view的过渡已经完成。

你可能感兴趣的:(willMoveToParentViewController:)