需求:自定义返回按钮之后,能正常使用系统侧滑返回。
问题:自定义返回按钮之后,发现侧滑返回时,系统导航右侧按钮侧滑会变灰。真机试了一下,也会有这个情况。
1.自定义返回按钮
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[RBImageNamed(@"nav_back") imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStylePlain target:self action:@selector(back)];
2.自定义导航控制器
- 在viewDidLoad方法中添加
self.interactivePopGestureRecognizer.delegate = self;
- 添加UIGestureRecognizerDelegate,实现delegate方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if (self.viewControllers.count <= 1 ) {
return NO;
}
return YES;
}
按照网上的方法,本以为这样就结束了,然而却发现了另一个问题,如下图(问题重现:滑返回到一半,不返回上页,然后快速侧滑返回上页会出现这个问题)
解决方案
找了半天确实没有找到有啥问题呢?试试自定义rightItem按钮试试吧。代码如下
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];