ios 导航栏隐藏时的一个坑

最近项目中有个需求,需要将登录页导航栏隐藏。其他页面导航正常显示。

自己用demo中尝试,在viewDidLoad简单敲下:

self.navigationController.navgationBar.hidden = YES;

首先登陆页本身会因为导航栏的隐藏而上移。好,重新调整下页面位置。

然后在跳转页面A的时候,A页面在viewDidLoad设置:

self.navigationController.navigationBar.hidden = NO;

发现页面会整体上移,了解到translucent这个属性可以调整controller的view的起始位置

于是再设置:

self.navigationController.navigationBar.translucent  =NO;

然而并没什么用。

在试:

将self.navigationController.navigationBar.hidden = NO;的方式改掉

-(void)viewWillAppear:(BOOL)animated

{

//        self.navigationController.navigationBar.hidden = NO;

    [super viewWillAppear:animated]; 

    [self.navigationController setNavigationBarHidden:NO animated:animated];

    self.navigationController.navigationBar.translucent  =NO;

}

惊奇发现可行。但在项目中这样设置仍然不行。

理解到导航栏是页面共用的,对于导航栏,谁隐藏谁处理,最好在登录页做设置:

- (void)viewWillAppear:(BOOL)animated

{

    [super viewWillAppear:animated];

    [self.navigationController setNavigationBarHidden:YES animated:animated];

}

- (void)viewWillDisappear:(BOOL)animated

{

    [self.navigationController setNavigationBarHidden:NO animated:animated];

    [super viewWillDisappear:animated];

}

好的,问题解决。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 山中泉一眼, 常年水不断。 山石水下显, 泉水谷中流。 2011年10月书
    秋小羽1023阅读 1,414评论 0 0
  • 基于赋能的组织创新过去的200年里,组织创新经历了三次革命,即工业革命带来的技术创新、生产力革命带来的科学创新以及...
    沈鱼2009阅读 2,350评论 0 1
  • 我的一天(2018/8/2) 依旧一夜未能好好入睡,凌晨四点中铺的母女俩下车后自己也就没有睡了,给电脑和手机(时间...
    漫漫无忧阅读 2,405评论 4 6

友情链接更多精彩内容