导航栏无-有的闪现
方法一
1.在BaseNaviController中重写
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
[super pushViewController:viewController animated:YES];
[self setNavigationBarHidden:NO animated:YES];
}
2.在需要隐藏的控制器设置
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
方法二
在需要隐藏的控制器中遵守协议
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.delegate = self;
}
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if ([viewController isKindOfClass:[self class]]) {
[navigationController setNavigationBarHidden:YES animated:YES];
} else {
[navigationController setNavigationBarHidden:NO animated:YES];
}
}