iOS7以后的侧滑返回上一页
我们知道,iOS7以后,导航控制器默认带了侧滑返回功能,但是仅限于屏幕边缘。而且在你自定义leftBarButtonItem等之后侧滑效果就会消失。这种问题怎么解决呢?
首先,我们先来看看系统的这种手势是什么?
NSLog(@"%@",self.interactivePopGestureRecognizer);//这里的self是项目中用的navigationController
打印结果:
<UIScreenEdgePanGestureRecognizer: 0x15ecc9e0; state = Possible; delaysTouchesBegan = YES; view = <UILayoutContainerView 0x15da65a0>; target= <(action=handleNavigationTransition:, target=<_UINavigationInteractiveTransition 0x15ecc900>)>>
解决办法:自定义一个滑动手势,当手势触发时,调用系统手势的target的相应方法。经过验证,这个target就是interactivePopGestureRecognizer.delegate,方法名是:handleNavigationTransition:
上代码:
id taget = self.interactivePopGestureRecognizer.delegate;
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:taget action:@selector(handleNavigationTransition:)];
[self.view addGestureRecognizer:pan];
pan.delegate = self; //因为根控制器不需要滑动返回,所以要通过代理方法处理一下
self.interactivePopGestureRecognizer.enabled = NO; //这句不能忘啊!!!!关掉系统手势 //手势代理方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
if (self.childViewControllers.count == 1) {
return NO;
}
return YES;
}
参考资料
http://www.cocoachina.com/ios/20150401/11459.html
http://www.jianshu.com/p/737924684695
http://www.jianshu.com/p/c0b7a97b3b0e
iOS7以后的侧滑返回上一页的更多相关文章
- html中返回上一页的各种写法【转】
超链接返回上一页代码: <a href="#" onClick="javascript :history.back(-1);">返回上一页</ ...
- JS控制,返回上一页之后强行刷新一次
网站建设过程中,提交页面后我们经常要用到window.history.go(-1)返回上一页,因为页面的缓存功能,我们只能返回上次操作的页面,但在删除等操作中,我们希望实时看到删除项目后的页面,这就要 ...
- php实现返回上一页的功能
php实现返回上一页的功能的3种有效方法 header(location:你的上一页的路径); // 注意这个函数前不能有输出 header(location:.getenv(&qu ...
- 6种方法实现asp.net返回上一页
其实要实现返回上一页的功能,主要还是要用到JavaScript. 一: 在ASP.net的aspx里面的源代码中 <input type="button onclick="J ...
- [moka同学收藏]网页上的“返回上一页”的几种实现代码
我们在制作网页的时候,经常在网页上要用到"返回上一页"的功能.这一功能在制作网页的时候会有多种编码方法,在此,笔者将比较常用的几种编码写作方法在下面列出来,供各位技术人员参考使用. ...
- angular+ionic返回上一页并刷新
假定当前页面为editCata页面,要返回的是cataDetail页面.目前我找到两种方法实现返回上一页并刷新,如果以后有其它方法,再继续添加. 1.在editCataCtrl.js中注入$ionic ...
- js返回上一页并刷新的多种实现方法
<a href="javascript:history.go(-1)">返回上一页</a> <a href="javascript:loca ...
- JavaScript返回上一页代码区别
JavaScript返回上一页代码区别: window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:win ...
- JS跳出框架返回上一页
链接部分 <a class="link" href="javascript:;" target="_top" onclick=&quo ...
随机推荐
- Apriori算法-位运算-C语言
原文地址:http://blog.csdn.net/liema2000/article/details/6118423 //////////////////////////////////////// ...
- Mysql 本地计算机无法启动 mysql 服务 错误 1067:进程意外终
1.重装后启动mysql服务,提示 本地计算机无法启动 mysql 服务 错误 1067:进程意外终止. 2.查看mysql根目录下有一 计算机名.err 打开一看全是英文的错误提示: 3.根据其中的 ...
- thinkphp的目录结构设计经验总结1
---恢复内容开始--- 用thinkphp开发了好些项目了:最近准备抽空写一些经验总结: 希望能给刚开始接触tp的童鞋们提供一些开发的方案:少走一些弯路:少踩一些坑: 这些绝对都是些精华干货:耐着性 ...
- jdk and tomcat 环境变量配置
一.安装JDK和Tomcat 1,安装JDK:直接运行jdk-7-windows-i586.exe可执行程序,默认安装即可. 备注:路径可以其他盘符,不建议路径包含中文名及特殊符号. 2.安装Tomc ...
- LeetCode OJ 110. Balanced Binary Tree
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- malloc without free, what happens?
It's per-process. Once your process exits, the allocated memory is returned to the OS for use by oth ...
- iOS 上架提示ipad需要显示四个方位,而我们只能竖屏的时候的解决办法
勾选requires sull screen
- Spring Security3实现,权限动态获取
Spring Security3实现,权限动态获取 原文 http://blog.csdn.net/yangwei19680827/article/details/9359113 主题 网络安全Sp ...
- <c:if>替代
由于没有else, 由下面的替代 <c:choose> <c:when test="${usersession.hasPrivilegeByName('Case Delet ...
- redis学习一
一.简介: 在过去的几年中,NoSQL数据库一度成为高并发.海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机.然而在众多产品中能够脱颖而出的却屈指可数,如Redis.MongoDB ...