ios开发 向右滑动手势实现返回.在NavigationController中如何设置
来源:互联网 发布:酷盛网络加速器 编辑:程序博客网 时间:2024/05/20 06:31
在navigationController中实现向右滑动 返回功能
系统提供的backbarbuttonitem,不用添加任何代码即可实现向右滑动后退功能,但是往往要对按钮修改样式等时,就需要自定义leftbarbuttonitem,此时向右滑动即失效.通过下面方法即可解决该问题.(本人亲自实验过)
主要是通过设置navigationController.interactivePopGestureRecognizer 此手势的一些属性,此手势大家可以通过sdk查看说明,这里不细说
1. self.navigationController.interactivePopGestureRecognizer.enabled = YES | NO; 手势有效与否
2. self.navigationController.interactivePopGestureRecognizer.delegate = self; 手势的代理,一般会设置为self
1中的属性,再viewcontroller中默认的设置为YES,即手势有效.按照2中的属性设置后,当前的viewcontroller即可以实现该向右滑动后退功能,但是当回到navigationController的rootView中再次做出向右滑动时,程序会有问题(再次push子controller时,程序卡在当前界面无法跳转).有效解决方案如下:
说明:有两个controllerA,B
navigationController的rootview设置为A,在A中点击按钮后push B.在A的 -(void)viewDidAppear:(BOOL)animated方法中加入self.navigationController.interactivePopGestureRecognizer.enabled = NO;代码如下:
- (void)viewDidAppear:(BOOL)animated
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO; //让rootView禁止滑动
}
}
然后再B中的- (void)viewDidLoad方法中加入
- (void)viewDidLoad
{
// 配置返回按钮
UIBarButtonItem * backItem = [self barButtonForImageNames:@[@"icon-返回", @"", @""] action:@selector(popBack)];
backItem.title = @"";
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
self.navigationItem.leftBarButtonItem = backItem;
if ([[[UIDevice currentDevice] systemVersion] floatValue]
>= 7.0) {
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
这样即可以保证再A中向右滑动后再次pushB时不会卡在A界面.
再项目中大家一般会创建风格统一的界面,一般都会创建一个基础viewcontroller,再此viewcontroller扩展一个配置leftbarbutton的方法,在该方法中加入B的viewDidLoad中的代码,这样在创建leftbarbutton的同时,直接加了返回的操作(不用每个viewController中都加入这样一段代码).然后只在navigationController的rootView中加入A的(void)viewDidAppear:(BOOL)animated方法即可.
- ios开发 向右滑动手势实现返回.在NavigationController中如何设置
- ios开发 向右滑动手势实现返回.在NavigationController中如何设置
- ios开发 向右滑动手势实现返回 -- @ShinePug
- 如何禁止NavigationController的向右滑动返回
- navigationcontroller的手势滑动返回
- navigationcontroller向右滑动返回的功能
- IOS中常用手势:手指向右滑动和向左滑动屏幕实现固定操作
- IOS中常用手势:手指向右滑动和向左滑动屏幕实现固定操作
- iOS向右滑动返回
- ios 滑动手势向右移动
- NavigationController的视图,滑动手势返回
- iOS开发 手势滑动返回功能
- iOS手势滑动返回
- iOS向右滑动返回上一界面
- iOS 屏幕左侧向右滑动返回
- iOS向右滑动返回上一界面
- iOS 屏幕左侧向右滑动返回-问题
- iOS 屏幕左侧向右滑动返回
- 字典转模型的过程中,空值和id特殊字符的处理
- 【LeetCode】Happy Number
- 用JAVA实现简单爬虫循环抓取
- 欢迎使用CSDN-markdown编辑器
- [Android]网络摄像头抓拍功能的折腾
- ios开发 向右滑动手势实现返回.在NavigationController中如何设置
- Java设计模式之单例模式
- Java4Android-面向对象基础1
- LeetCode: Reverse integer
- 面试经验
- HDU4638:Group(线段树离线处理)
- 一、动态规划(1)相似基因
- 用9path图片做背景 button和textview的文字不显示
- 053 第500题