由于自定义navigationItem后,原先默认的华东pop失效,解决办法:
1设置delegate 最好重写UINavigationController
<UINavigationControllerDelegate,UIGestureRecognizerDelegate>
2 viewDidLoad中
if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.interactivePopGestureRecognizer.delegate = self;
self.delegate = self;
}
3.- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]){
self.interactivePopGestureRecognizer.enabled = NO;
}
[super pushViewController:viewController animated:animated];
}
4.在栈底的时候 也就是第一个加到nav中的时候 如果滑动 会出现假死现象,因此做如下处理 完美解决。(因此建议重写nav)
#pragma mark - UINavigationControllerDelegate
- (void)navigationController:(UINavigationController *)navigationController
didShowViewController:(UIViewController *)viewController
animated:(BOOL)animate{
if ([navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
if ([navigationController.viewControllers count] == 1) {
navigationController.interactivePopGestureRecognizer.enabled = NO;
} else {
navigationController.interactivePopGestureRecognizer.enabled = YES;
}
}
}