iOS 的导航栏定义leftBarButtonItem 默认的滑动返回 会失效
- [_currentNav pushViewController:viewController animated:YES];
- //开启iOS7的滑动返回效果
- if ([_currentNav respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
- _currentNav.interactivePopGestureRecognizer.delegate = nil;
- }
添加如上代码即可解决问题
当然网上还有一种解决方法是在设置leftBarButtonItem之后加上:
- self.navigationItem.backBarButtonItem = backButton;
- self.navigationController.interactivePopGestureRecognizer.delegate = self;
但这两行代码必须放在viewWillAppear中,相比上一种方式要修改的代码更多,因此建议使用上一种方式。
响应了iOS7的滑动返回手势之后,我们还会发现一个问题,iOS7的滑动返回不会调用我们给leftBarButtonItem设置的回调,那么返回的事件如何捕捉呢?可以通过以下代码:
- - (void)viewWillDisappear: (BOOL)animated
- {
- [super viewWillDisappear: animated];
- if (![[self.navigationController viewControllers] containsObject: self])
- {
- // the view has been removed from the navigation stack, back is probably the cause
- // this will be slow with a large stack however.
- }
- }
navigation 定义leftBarButtonItem 无法滑动返回的解决方案
原文:http://www.cnblogs.com/juvham/p/4668065.html