iOS让controller具有右滑pop的效果,首先要有navigationcontroller,在navigationcontroller的viewdidload方法里添加下面的代码
NSObject *targetObjc = [[self.interactivePopGestureRecognizer valueForKey:@"_targets"] firstObject]; NSObject *target = [targetObjc valueForKey:@"target"]; UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)]; [self.view addGestureRecognizer:pan];
思路是利用runtime打印出UIGestureRecognizer的属性,找到target存放的位置,继而找到self.interactivePopGestureRecognizer响应方法,重新创建一个平移手势加入到view上,利用响应者链实现我们的右滑pop效果。