第一步,在我们的工程中需要有BaseNavigationController,并且要确定你的app框架的搭建是建立在这个BaseNavigationController上的。
在BaseNavigationController.m中复写这个方法,
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[super pushViewController:viewController animated:animated];
[self setNavigationBarHidden:NO animated:YES];
}
第二步,在需要隐藏导航栏的.m文件的
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
如果有需要的话,也可以这样设计,在BaseViewController的viewWillAppear方法中,来判断那个控制器需要显示导航栏,代码如下:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//控制是否显示导航栏
if ([self isKindOfClass:[BillViewController class]] ||
[self isKindOfClass:[MineViewController class]])
{
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
}