美文网首页
侧滑返回

侧滑返回

作者: elephant0001 | 来源:发表于2019-05-23 09:45 被阅读0次

    在自己的navigationcontroller的viewdidload 里面写下如下代码

    self.delegate = self;

        __weak typeof(self) weakSelf = self;

        if([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {

            self.interactivePopGestureRecognizer.delegate = weakSelf;

        }

    实现UIGestureRecognizerDelegate代理方法

    -(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{

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

            returnNO;

        }else{

            returnYES;

        }

    }

    实现UINavigationControllerDelegate代理中的方法

    - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{

        if([navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {

            navigationController.interactivePopGestureRecognizer.enabled = YES;

        }

    //使navigationcontroller中第一个控制器不响应右滑pop手势

        if(navigationController.viewControllers.count == 1) {

            navigationController.interactivePopGestureRecognizer.enabled = NO;

            navigationController.interactivePopGestureRecognizer.delegate = nil;

        }

    }

    -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{

        if([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {

            self.interactivePopGestureRecognizer.enabled = NO;

        }

        [superpushViewController:viewController animated:animated];

    }

    相关文章

      网友评论

          本文标题:侧滑返回

          本文链接:https://www.haomeiwen.com/subject/uwnmzqtx.html