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];  

    }  

}  

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容