1.起因
self.navigationItem.leftBarButtonItems = [UIButton buttonWithType:UIButtonTypeSystem];
会干掉系统的vc的navigationItem.backBarButtonItem导致系统返回失效。
2.解决
在所在的VC,如果你有BaseVC就直接在baseVC中设置,然后禁用栈底的popGestrure,如果不禁用在栈底控制器右滑,会导致第一入栈操作失败。
self.navigationController.interactivePopGestureRecognizer.delegate = self;
///并且让baseVC遵循<UIGestureRecognizerDelegate>
.m大概长得这样子
#import "UIBaseViewController.h"
@interface UIBaseViewController () <UIGestureRecognizerDelegate>
@end
@implementation UIBaseViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.interactivePopGestureRecognizer.delegate = self
}
///禁用栈底控制器的滑动返回
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
return self.navigationController.childViewControllers.count > 1;
}
@end