右滑返回上一级interactivePopGestureRecognizer

iOS7后新增了右滑返回上一级的功能,新建一个domo,随便弄两个页面push,pop就可以发现,然后就以为这个功能是默认开启的,以为self.navigationController.interactivePopGestureRecognizer.enabled = YES;这句话不用写也没关系,以为我固有的项目没有这个功能是因为项目太老,创建项目时的xcode版本太低,其实,,,都不是。。。。。
只需要加上 self.navigationController.interactivePopGestureRecognizer.delegate = self; self.navigationController.interactivePopGestureRecognizer.enabled = YES;就可以了。

产生的问题:
1)在navigation的最上层页面如果向右拖动,如果再点击该页面的某个按钮push到下一个页面,程序会假死停留在当前页面,进入图层查看确实已经进入下一级页面

解决办法:在navigation的最上层页面关掉interactivePopGestureRecognizer,在viewWillAppear或者viewDIdAppear中关闭,在viewDidDisAppear或者viewWillDisAppear中开启

2)如在一个viewController中添加了scrollView或者tableView的时候。由于这些控件里面都有ScrollView,边缘侧滑返回的时候会首先触发ScrollView滚动而失效,导致侧滑手势失效,但是大部分时候我们并不需要ScrollView的横向滚动,所以这个时候有边缘侧滑返回就会很好的提升用户体验
  要解决这个问题只需要在ViewDidload中添加以下代码:
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = self;
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
3)为解决的问题
在一个webView页面,在页面未加载完成的时候可以返回,加载完成之后返回不了,换成其他的链接却又可以返回去,故,初步认定是H5页面的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值