学习笔记:ios手势(滑动)返回
2015-03-03 15:09
357 查看
今天不是很忙,记一下做项目总结出来的笔记。
我现在这个项目是用storyboard布局的,和之前纯代码布局的操作完全不一样,��我也是花了很久学习自动约束。
废话不多说,进入我的笔记内容:IOS手势返回功能的加入。
我本以为storyboard上布局以后返回键是自动带滑动返回的(事实证明我很傻很天真),下面的方法是默认开启的,如果你是系统自带的返回建的话,你已经实现了滑动返回。
但是 如果你没用系统自带的返回键的话,而是自定义了一个返回键的话,这个功能不会开启(我的没开启,我也不知道是不是我自定义的的方法不对),我研究了百度上的几个解决办法,下面一一列举:
1、不要把LeftButtonItem用作添加自定义返回按钮,而是使用
backBarButtonItem
2、有时候这样的方法会出现小问题,比如我就在执行的过程中发现了会有自定义按钮被取代变成系统自带返回的bug(至今未找到原因,希望大家帮助),因此又上网查到了这个方法,测试可行,并运用到了项目中:
首先,建立一个主viewController,在.h和.m文件中声明并实现下面的方法
实现button点击方法
在根viewController.m里遵守UIGestureRecognizerDelegate,并在viewdidload中写入下面代码
最后一步,在主viewController中实现下面方法
大功告成!目前测试没有问题,以后有问题欢迎交流,我也会在项目里不断学习。
我现在这个项目是用storyboard布局的,和之前纯代码布局的操作完全不一样,��我也是花了很久学习自动约束。
废话不多说,进入我的笔记内容:IOS手势返回功能的加入。
我本以为storyboard上布局以后返回键是自动带滑动返回的(事实证明我很傻很天真),下面的方法是默认开启的,如果你是系统自带的返回建的话,你已经实现了滑动返回。
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
但是 如果你没用系统自带的返回键的话,而是自定义了一个返回键的话,这个功能不会开启(我的没开启,我也不知道是不是我自定义的的方法不对),我研究了百度上的几个解决办法,下面一一列举:
1、不要把LeftButtonItem用作添加自定义返回按钮,而是使用
backBarButtonItem
1 UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; 2 //some initialize code here... 3 UIBarButtonItem *barItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 4 self.navigationItem.leftBarButtonItem = barItem; //不可行 5 self.navigationItem.backBarButtonItem = barItem; //滑动可行
2、有时候这样的方法会出现小问题,比如我就在执行的过程中发现了会有自定义按钮被取代变成系统自带返回的bug(至今未找到原因,希望大家帮助),因此又上网查到了这个方法,测试可行,并运用到了项目中:
首先,建立一个主viewController,在.h和.m文件中声明并实现下面的方法
`- (void)customBackBarButtonItem { UIImage *image = [UIImage imageNamed:@"图片名称"]; UIButton *backBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; [backBtn setImage:image forState:UIControlStateNormal]; [backBtn addTarget:self action:@selector(backBarButtonItemClick:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *backBarItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; [self.navigationItem setLeftBarButtonItem:backBarItem]; }`
实现button点击方法
1. (void)backBarButtonItemClick:(UIBarButtonItem *)barItem { [self.navigationController popViewControllerAnimated:YES]; }
在根viewController.m里遵守UIGestureRecognizerDelegate,并在viewdidload中写入下面代码
self.navigationController.interactivePopGestureRecognizer.delegate = self;
最后一步,在主viewController中实现下面方法
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { if(self.navigationController.viewControllers.count ==1){ return NO; } else { return YES; } }
大功告成!目前测试没有问题,以后有问题欢迎交流,我也会在项目里不断学习。
相关文章推荐
- IOS开发笔记之禁用手势滑动返回功能的示例
- ios学习笔记----实现一个带滑动手势的tabBarViewController,并可自定义tabBar
- IOS开发笔记——禁用手势滑动返回功能
- iOS学习笔记12--纯代码实现原生UITabBarController,手势滑动切换视图
- IOS 7 手势滑动返回的问题
- 再谈iOS 7的手势滑动返回功能
- IOS学习笔记(14)手势识别
- 2011斯坦福大学iOS应用开发教程学习笔记(第五课)Protocols,手势识别
- iOS学习笔记——手势(Gesture)
- 再谈iOS 7的手势滑动返回功能
- 再谈iOS 7的手势滑动返回功能
- iOS学习笔记—— 触摸及手势
- 再谈iOS 7的手势滑动返回功能
- ios学习笔记之手势识别
- 斯坦福大学iOS应用开发教程学习笔记(第五课)Protocols,手势识别
- [ios学习笔记之视图、绘制和手势识别]
- 2011斯坦福大学iOS应用开发教程学习笔记(第五课)Protocols,手势识别
- 再谈iOS 7的手势滑动返回功能
- iOS开发--开启iOS7向左滑动手势返回功能
- 2011斯坦福大学iOS应用开发教程学习笔记(第五课)Protocols,手势识别