侧滑返回功能失效解决

来源:互联网 发布:网络媒介推广 编辑:程序博客网 时间:2024/05/22 00:36

    自定义一个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   侧滑返回   

0 0
原创粉丝点击