您的位置:首页 > 移动开发 > IOS开发

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

2015-08-13 09:51 344 查看
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去继承它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 右滑回退