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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容