左滑事件是iOS7.0推出的,从很大程度上方便了用户操作,但有事我们左滑不一定是要返回之前的页面,这个时候就要修改左滑后跳转到指定的页面。我在项目中遇到这种要求,如下:
如果访客以前申请过,首先进入权限状态的显示页面,然后点击重新申请,就进入申请的页面。申请完毕后,左滑直接回到我的页面。
通过网上搜索,找到以下两个方法,不管是push和pop都会调用到此方法
- (void)willMoveToParentViewController:(UIViewController*)parent
- (void)didMoveToParentViewController:(UIViewController*)parent//这两个方法是系统写的类别UIContainerViewControllerCallbacks中的方法。
然后在申请的页面,实现这两个方法,做自己想要的处理:
- (void)willMoveToParentViewController:(UIViewController*)parent{
[super willMoveToParentViewController:parent];
NSLog(@"%s,%@",__FUNCTION__,parent);
}
- (void)didMoveToParentViewController:(UIViewController*)parent{
[super didMoveToParentViewController:parent];
if(parent) {
NSLog(@"%s1111111,%@",__FUNCTION__,self.navigationController.viewControllers);
UIViewController * VC = [self.navigationController.viewControllers objectAtIndex:1];
NSString * className = NSStringFromClass([VC class]);
if ([className isEqualToString:@"PermissionApplyStatusController"]) {
NSMutableArray * mTmp = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[mTmp removeObjectAtIndex:1];
self.navigationController.viewControllers = (NSArray *)mTmp;
}
}
}
在push进入此页面的时候,将导航控制器中的子控制器是权限状态控制器的移除,重新给导航控制器的子控制器赋值。
这是原文 ,感谢分享!
当一个视图控制器从视图控制器容器中被添加或者被删除之前,该方法被调用