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

来源:互联网 发布:淘宝卖家被处罚的原因 编辑:程序博客网 时间:2024/06/06 00:31


    if (self.navigationController.viewControllers.count>=1)

    {

        gesture =self.navigationController.interactivePopGestureRecognizer;

        gesture.enabled =NO;

        

        [self.viewremoveGestureRecognizer:self.popRecognizer];

        

        _popRecognizer = [[UIPanGestureRecognizeralloc] init];

        // popRecognizer.delegate = self;

        _popRecognizer.maximumNumberOfTouches =1;

        [self.viewaddGestureRecognizer:_popRecognizer];

        

        NSMutableArray *_targets = [gesturevalueForKey:@"_targets"];

        //    /**

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

        //     */

        id gestureRecognizerTarget = [_targetsfirstObject];

        //    /**

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

        //     */

        id navigationInteractiveTransition = [gestureRecognizerTargetvalueForKey:@"_target"];

        //    /**

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

        //     */

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

        //    /**

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

        //     */

        [_popRecognizer addTarget:navigationInteractiveTransition action:handleTransition];

    }

    else

    {

        [self.viewremoveGestureRecognizer:_popRecognizer];

        self.popRecognizer =nil;

    }

0 0
原创粉丝点击