iOS- 13滑动返回按钮(全屏滑动)

作者: 麦穗0615 | 来源:发表于2016-08-24 11:24 被阅读156次

    图示:


    滑动返回功能

    恢复滑动返回功能
    ** 分析:**

    • 把系统的返回按钮覆盖
      1.手势失效
      1.1 手势被清空
      1.2 手势代理是不是出问题,导致手势失效
      #import "ZYNavigationController.h"
      self.interactivePopGestureRecognizer.delegate = nil;
      但是,此时,还有个bug,就是当我们滑动到当前栈顶控制器时,在滑动,在点击设置,就会造成卡顿现象。又称假死状态
    • 假死状态:程序还在运行,但是界面死了。不能操作。

    解决:根控制器,不需要滑动,需手动管理。
    ** 1.遵守代理**
    @interface ZYNavigationController ()<UIGestureRecognizerDelegate>
    @end
    ** 2.设置代理**
    - (void)viewDidLoad {
    [super viewDidLoad];
    // 控制手势什么时候触发,只有非控制器的时候才会触发
    self.interactivePopGestureRecognizer.delegate =self;
    }
    ** 3.实现代理方法**
    #pragma mark -UIGestureRecognizerDelegate
    /*是否触发手势/
    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
    {
    return self.childViewControllers.count > 1;
    }

    全屏滑动返回

    为什么导航控制器的手势不是全屏滑动

    手势图
    将上述viewDidLoad改为以下
    - (void)viewDidLoad {
    [super viewDidLoad];
    // 控制手势什么时候触发,只有非控制器的时候才会触发
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget: self.interactivePopGestureRecognizer.delegate action:@selector(handleNavigationTransition:)];
    [self.view addGestureRecognizer:pan];
    pan.delegate = self;
    self.interactivePopGestureRecognizer.enabled = NO;
    }
    效果图:
    效果图:

    相关文章

      网友评论

        本文标题:iOS- 13滑动返回按钮(全屏滑动)

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