iOS7 NavigationController 右滑手势问题

在iOS7中,新增加了一个小小的功能,也就是这个api:
self.navigationController.interactivePopGestureRecognizer.enabled = YES;

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

这个功能是好,但是经常我们会有需求定制返回按钮,如果手动定制了返回按钮,这个功能将会失效,也就是自定义了navigationItem的leftBarButtonItem,那么这个手势就会失效。解决方法找到两种
 
1.重新设置手势的delegate

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

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


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

如果想保留系统的边缘手势, 还想修改leftBarButtonItem
在基类的ViewController中 实现如下方法,可达到保留返回方法和箭头样式,并修改文字的目的
UIBarButtonItem *bar = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = bar;
特别注意: 基类
posted @ 2016-01-03 18:33  挽月细数风流  阅读(134)  评论(0编辑  收藏  举报