ios 两句话解决,从无导航栏push到有导航栏界面,顶部闪现空白问题

第一步,在我们的工程中需要有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];  

    }  

}  

你可能感兴趣的:(ios 两句话解决,从无导航栏push到有导航栏界面,顶部闪现空白问题)