navigation 系统自带交互手势

本文探讨了在使用UINavigationController时,如何处理交互式pop手势的问题。当自定义leftBarItem导致返回手势失效,或者在RootViewController中遇到滑动卡死,以及在UIViewController中存在ScrollView、TableView、UIWebView时,如何开启和关闭interactivePopGesture。通过设置`interactivePopGestureRecognizer.delegate`,并在`viewDidDisappear`和`viewWillDisappear`中调整其enabled状态,以及利用`requireGestureRecognizerToFail`和`shouldRecognizeSimultaneouslyWithGestureRecognizer`方法,可以实现手势的正确交互。
摘要由CSDN通过智能技术生成

UINavigationController interactivePopGesture

iOS7 之后,引入交互手势,在NavigationController 的交互手势是 UIScreenEdgePanGestureRecognizer, 继承自 UIPanGestureRecognizer。

在本次交互手势启用中,遇到的问题
  1. 自定义leftBarItem (返回按钮)不响应交互手势了。
  2. navigationController 的 RootViewController 上多滑动几次卡死了。
  3. UIViewController 上 有 ScrollView,TableView, UIWebView。
  4. 如何开启/关闭 interactivePopGesture?
解决办法:
  1. self.navigationController.interactivePopGesture.delegate = self;
  2. 代码如下
    1. - (void)viewDidDisappear:(BOOL)animated {
      [super viewDidDisappear:animated];
      self.navigationController.interactivePopGestureRecognizer.enabled = NO;
      }
      - (void)viewWillDisappear:(BOOL)animated {
      [super viewWillDisappear:animated];
      self.navigationController.interactivePopGestureRecognizer.enabled = YES;
      }
  3. [self.myWeb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值