这两个方法是系统写的类别UIContainerViewControllerCallbacks中的方法。
经过测试发现:
1,只需要在当前使用的控制器中重写这两个方法就可以了,第一次push进来的时候两个方法都会调用,parent的值不为空。
2,当开始使用系统侧滑的时候,会先调用willMove,然后调用didMove。parent的值都为空;
3,如果滑动结束没有返回上个页面,也就是轻轻划了一下还在当前页面,那么则这两个方法willMove和didMove方法都不会调用
4,如果点击返回按钮返回上个页面,而不是通过侧滑手势。则先调用[self.navigationController popViewControllerAnimated:YES]; 之后调用didMove方法
- (void)willMoveToParentViewController:(UIViewController *)parent{
[super willMoveToParentViewController:parent];
NSLog(@"%@",parent);
}
//如果想侧滑返回后在上个页面做一些操作的话,可以在didMove方法中根据parent的值来判断,如果parent值为空说明侧滑返回成功了。
- (void)didMoveToParentViewController:(UIViewController *)parent{
[super didMoveToParentViewController:parent];
if(!parent){
DLog(@"页面pop成功了");
}
网友评论