自定义导航条滑动返回问题

分析:我们将系统自带的返回按钮覆盖了。
1.手势失效。(手势可能被清空,在一设置上根控制器的时候就打印一下手势看有没有这个手势)
 2.手势的代理做了一些事情,导致手势失效。(将代理对象置空),这个方法可行。但这个时候也遇到了BUG 

          1.在根控制器上滑动返回的时候再次点击发现界面卡住了,变成程序假死状态,发现只要在根控制器上滑动手势就会假死,根据这个特点,我们只要将在手势代理方法里对代理方法进行控制,让它在不是根控制器的时候生效即可。


全屏滑动返回:

首先,我们为什么不能全屏滑动返回。
分析猜测:1.首先我们看一下导航控制器中的手势,发现这个手势继承自UIPanGesture,并且拥有自己的属性设置滑动边缘的属性,尝试设置这个属性,为none,希望能够将滑动边缘设置成全部,发现一设置竟然,全屏滑动手势失效,显然不是我们希望的那样。
                 2.只有panGesture才具有全屏幕拖拽的功能,监听panGesture这个手势,观察我们打印出来的self.interactiveGesture,分析打印出来的信息
发现调用UIScreenEdgGesture手势就会触发UINavigationInterActiveTransaition(手势的代理)这个对象的action方法,就具有滑动返回方法,巧妙的利用系统的方法实现滑动返回,可是target需要UINavigationInterActiveTransaition这个类,所以我们只需要传进去这个代理即可,然后将pan手势加在导航条的view上即可,这时候还是会出现假死状态,将pan手势的代理设置给自己,控制什么时候触发代理事件,最后使用了自己的手势,那么之前的系统的self.interactiveGesture就没用了,所以把它废掉就好了
self.interactivePopGestureRecognizer.enabled = NO;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值