在开发中我们有时候会遇到这样的需求,在用户使用右滑返回上上级或者指定的控制器,通常在开发过程中我们都会制定BaseViewController或者自定义导航控制器,在子控制器继承父类的时候,我们在程序加载过程中是无法获取到self.navigitionController的,只有在加载完毕才会获取的到,才能作进一步的处理,此时有两个方法 大家可以注意一下
-(void)willMoveToParentViewController:(UIViewController*)parent{
[super willMoveToParentViewController:parent];
}
-(void)didMoveToParentViewController:(UIViewController*)parent{
[super didMoveToParentViewController:parent];
}
当页面跳转的时候 parent 是有有值的,在返回的时候 parent 是空值,那么我们就可以在页面已经跳转完毕的时候 做一些事情
此时将导航控制器的手势代理设定为自己,然后遵守相关协议 ,并在相应的方法里做你想做的事情
但是要注意,当return 为YES 时,会影响整个程序的跳转 ,你可以在页面消失的时候做一些相应得处理,比如 取消当前控制器的delegate
网友评论