zoukankan      html  css  js  c++  java
  • 禁用导航栏的右滑返回实现全屏手势返回

    今天发现项目中push 的也面的右滑都无法pop 查阅相关资料发现 导航栏右滑手势失效基本有两种情况

      1;

    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    这个
    interactivePopGestureRecognizer手势是控制系统导航右滑返回的关键,让他失效自然就无法返回。

    2:自定义设置了

    navigationItem的leftBarButtonItem;

    ============全屏右滑POP=================

    ===soruce :http://www.cocoachina.com/ios/20150811/12897.html;

    //自定义一个基类NavigationController
    - (void)viewDidLoad {
        [super viewDidLoad];
        // 获取系统自带滑动手势的target对象
        id target = self.interactivePopGestureRecognizer.delegate;
        // 创建全屏滑动手势,调用系统自带滑动手势的target的action方法
        UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)];
        // 设置手势代理,拦截手势触发
        pan.delegate = self;
        // 给导航控制器的view添加全屏滑动手势
        [self.view addGestureRecognizer:pan];
        // 禁止使用系统自带的滑动手势
        self.interactivePopGestureRecognizer.enabled = NO;
    }
    // 什么时候调用:每次触发手势之前都会询问下代理,是否触发。
    // 作用:拦截手势触发
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
    {
        // 注意:只有非根控制器才有滑动返回功能,根控制器没有。
        // 判断导航控制器是否只有一个子控制器,如果只有一个子控制器,肯定是根控制器
        if (self.childViewControllers.count == 1) {
            // 表示用户在根控制器界面,就不需要触发滑动手势,
            return NO;
        }
        return YES;
    }
     
  • 相关阅读:
    POJ3693 Maximum repetition substring —— 后缀数组 重复次数最多的连续重复子串
    SPOJ
    POJ2774 Long Long Message —— 后缀数组 两字符串的最长公共子串
    POJ3261 Milk Patterns —— 后缀数组 出现k次且可重叠的最长子串
    POJ1743 Musical Theme —— 后缀数组 重复出现且不重叠的最长子串
    SPOJ
    AC自动机小结
    HDU3247 Resource Archiver —— AC自动机 + BFS最短路 + 状压DP
    POJ1625 Censored! —— AC自动机 + DP + 大数
    Herding
  • 原文地址:https://www.cnblogs.com/cnman/p/6232418.html
Copyright © 2011-2022 走看看