您的位置:首页 > 其它

实现BaseViewcontroller的滑动返回按钮效果

2015-11-14 13:42 316 查看
if (self.navigationController.viewControllers.count>=1)

{

gesture =
self.navigationController.interactivePopGestureRecognizer;

gesture.enabled =
NO;

[self.view
removeGestureRecognizer:self.popRecognizer];

_popRecognizer = [[UIPanGestureRecognizer
alloc] init];

// popRecognizer.delegate = self;

_popRecognizer.maximumNumberOfTouches =
1;

[self.view
addGestureRecognizer:_popRecognizer];

NSMutableArray *_targets = [gesture
valueForKey:@"_targets"];

// /**

// *
获取它的唯一对象,我们知道它是一个叫UIGestureRecognizerTarget的私有类,它有一个属性叫_target

// */

id gestureRecognizerTarget = [_targets
firstObject];

// /**

// *
获取_target:_UINavigationInteractiveTransition,它有一个方法叫handleNavigationTransition:

// */

id navigationInteractiveTransition = [gestureRecognizerTarget
valueForKey:@"_target"];

// /**

// * 通过前面的打印,我们从控制台获取出来它的方法签名。

// */

SEL handleTransition =
NSSelectorFromString(@"handleNavigationTransition:");

// /**

// *
创建一个与系统一模一样的手势,我们只把它的类改为UIPanGestureRecognizer

// */

[_popRecognizer
addTarget:navigationInteractiveTransition action:handleTransition];

}

else

{

[self.view
removeGestureRecognizer:_popRecognizer];

self.popRecognizer =
nil;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: