IOS开发—视图控制器左边缘右滑pop出栈
来源:互联网 发布:nginx实现负载均衡 编辑:程序博客网 时间:2024/04/28 00:11
IOS视图控制器左边缘右滑pop出栈
IOS7.0之后,苹果优化了一个小功能,就是对于UINavagationController堆栈里的UIViewController,只要轻轻在视图控制器的左边缘右滑一下,该视图控制器就会pop出栈(前提当然是对于非根视图控制器而言)。实现方法很简单,一句话搞定:
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
事实上对于一个视图控制器而言,该属性的默认值即为YES,因此不设置也能实现右滑pop的功能。然而这个功能很有局限性,因为它不允许当前视图控制器自定义了leftBarButtonItem,一旦自定义,右滑功能就会失效。这里有一个方法:
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
设置代理为nil之后即便自定义了leftBarButtonItem也可以右滑pop。
事实上如果自定义了leftBarButtonItem,常用的做法是重新设置代理:
- (void)viewDidAppear:(BOOL)animated{__weak typeof(self) weakSelf = self; self.navigationController.interactivePopGestureRecognizer.delegate = weakSelf;}
然后实现手势协议即可:
#pragma mark - UIGestureRecognizerDelegate- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer{ //判断是否为rootViewController if (self.navigationController && self.navigationController.viewControllers.count == 1) { return NO; } return YES;}
0 0
- IOS视图控制器左边缘右滑pop出栈
- IOS开发—视图控制器左边缘右滑pop出栈
- IOS开发—视图控制器左边缘右滑pop出栈
- IOS开发—IOS自定义任意位置右滑POP视图控制器
- iOS视图pop出栈
- iOS pop出指定的控制器
- [iOS]UINavigationController全屏pop之为控制器添加左滑push
- 开启/关闭 iOS 原生 左滑动 pop 视图功能
- iOS开发——视图及视图控制器
- 【iOS开发-21】UINavigationController导航控制器初始化,导航控制器栈的push和pop跳转理解
- iOS开发UINavigationController导航控制器初始化,导航控制器栈的push和pop跳转理解
- iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解
- iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解
- 禁止右滑触发当前控制器的pop方法
- iOS开发-视图控制器相关
- iOS右滑pop功能的实现
- IOS开发之视图和视图控制器
- 关于iOS的pop出栈问题
- Java-核心技术总结-第3章
- 又安上了好多otherthings.......
- SOA面向服务架构的一些思考
- 《Pro Ogre 3D Programming》读书笔记 之 第十一章 动态阴影
- 由先序序列/后序序列和中序序列构造二叉树
- IOS开发—视图控制器左边缘右滑pop出栈
- Matlab的Profile功能
- Leetcode[102]-Binary Tree Level Order Traversal
- exe文件无法打开
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-2
- 立体类族共有的抽象类
- 浅谈JDBC
- X86函数内存栈
- OpenCL快速入门教程