iOS 为自定义返回按钮的页面添加右滑返回

来源:互联网 发布:淘宝封号能自动解封吗 编辑:程序博客网 时间:2024/05/20 03:43
苹果一直都在人机交互中尽力做到极致,在iOS7中,新增加了一个小小的功能,也就是这个api:self.navigationController.interactivePopGestureRecognizer.enabled = YES;

这个api功能就是在NavigationController堆栈内的UIViewController可以支持右滑手势,也就是不用点击右上角的返回按钮,轻轻在屏幕左边一滑,屏幕就会返回,随着ios设备屏幕的增大,这个小功能让手指短,拇指大和手残人士看到了福音。

这个功能是好,但是经常我们会有需求定制返回按钮,如果手动定制了返回按钮,这个功能将会失效,也就是自定义了navigationItem的leftBarButtonItem,那么这个手势就会失效。

首先让VIewController遵守

UIGestureRecognizerDelegate协议


1.重新设置手势的delegate

 self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;


 2.当然你也可以自己响应这个手势的事件

 [self.navigationController.interactivePopGestureRecognizer addTarget:self action:@selector(handleGesture:)];

如果只是简单定制了返回按钮,第一种最简单,一句代码搞定。


当然,在添加右滑返回的时候会遇见一个大坑,就是当退到NavigationController的rootViewController的时候继续右滑的话会遇见界面卡死的问题,解决这个问题的方法也很简单。

在rootViewController的viewDidAppear方法里面添上

self.navigationController.interactivePopGestureRecognizer.enabled = NO


在其他的ViewController的viewWillAppear方法里加上

self.navigationController.interactivePopGestureRecognizer.enabled = YES


这句话的作用是禁止使用右滑手势。



4 0
原创粉丝点击