iOS 7中在传统的左上角返回键之外,提供了右滑返回上一级界面的手势。支持此手势的是UINavigationController中新增的属性。interactivePopGestureRecognizer,即右滑返回只支持以UINavigationController为容器的ViewController间切换,要想在自定义容器中使用,需要一些额外的工作。
1. 在viewcontroller声明是实现代理:
@interface MEUseInNVBaseVC : UIViewController<MEBLDelegate,UIGestureRecognizerDelegate
2. 在viewDidLoad中,添加
self.navigationController.interactivePopGestureRecognizer.delegate = self;
3. 重写代理方法
#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if (self.navigationController.viewControllers.count == 1)//关闭主界面的右滑返回
{
return NO;
}
else
{
return YES;
}
}
二、右滑出现三个小点
这样就可以了,但是发现滑动的时候会有问题,当你右滑得时候,navigationBar上会出现三个绿色小点,右滑一半松手,绿色小点会固定在navigationBar上,而且位置不规律,可以肯定这个不是项目代码或者图片搞出来的东西,一定是SDK自己蹦出來的。后台尝试发现navigationItem的title如果是nil的话,就会有这个问题。 解决方案:把[self.navigationItem setHidesBackButton:YES];去掉,然後把假装成返回按钮的navigationItem的title设置成@""。
//[self.navigationItem setHidesBackButton:YES];
self.navigationItem.title = @"";
[self setNavLeftButtonByImage:@"back_icon_orange" selectedImageName:nil];