您的位置:首页 > 其它

侧滑返回功能失效解决

2015-10-13 19:39 309 查看
自定义一个UINavigationController,实现几个代理方法
@interface CustomNavigationController : UINavigationController

@end

#import "CustomNavigationController.h"

@interface CustomNavigationController ()<UINavigationControllerDelegate, UIGestureRecognizerDelegate>
@property(nonatomic, weak) UIViewController *currentShowVC;
@end

@implementation CustomNavigationController

- (instancetype)initWithRootViewController:(UIViewController *)rootViewController {
CustomNavigationController *nav = [super initWithRootViewController:rootViewController];
nav.interactivePopGestureRecognizer.delegate = self;
nav.delegate = self;
return nav;
}

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (1 == navigationController.viewControllers.count) {
self.currentShowVC = nil;
} else {
self.currentShowVC = viewController;
}
}

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if (gestureRecognizer == self.interactivePopGestureRecognizer) {
return (self.currentShowVC == self.topViewController);
}
return YES;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] &&
[otherGestureRecognizer isKindOfClass:[UIScreenEdgePanGestureRecognizer class]]) {
return YES;
} else {
return NO;
}
}
@end


然后,将你的UINavigationController都替换成该自定的NavigationController就OK了

解决iOS7自定义返回按钮后不能侧滑返回的问题

标签:uinavigationcontroller pop 侧滑返回
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: