自定义leftBarButtonItem的右滑回退功能首页右滑界面卡死解决

来源:互联网 发布:centos安装raid驱动 编辑:程序博客网 时间:2024/06/05 18:30
iOS7开始是自带界面右滑回退功能的,但是有的时候如果需要自定义那个回退按键,就会去覆盖leftBarButtonItem,而此时iOS自带的右滑回退功能就失效了,此时如果想继续使用这个右滑回退功能,可以在tabBarController的navigationController中加入以下代码:
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {        self.navigationController.interactivePopGestureRecognizer.delegate = nil;    }
去掉代理后,由navigationController去push的后续界面都可以右滑回退了,但是如果在navigationController页进行右滑的话就会导致界面卡死,此时可以手动加上左边界的右滑事件:
//首页从左滑动做右滑回退会有导致界面卡死 这里定义掉左边的右滑事件加以消除卡死现象    UIScreenEdgePanGestureRecognizer *leftEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftEdgeGesture:)];    leftEdgeGesture.edges = UIRectEdgeLeft;    [self.view addGestureRecognizer:leftEdgeGesture];
然后实现事件函数,不做任何操作即可:
- (void)handleLeftEdgeGesture:(UIScreenEdgePanGestureRecognizer *)gesture {    //do nothing}

这样就可以避免卡死现象 ,后续的viewController也能够拥有右滑回退功能。

还有一个想法还没尝试,就是重写UIViewController,给它手动加上右滑回退功能,然后让需要右滑回退的viewController去继承它。

0 0