美文网首页
ios 导航栏隐藏时的一个坑

ios 导航栏隐藏时的一个坑

作者: 回传妙手 | 来源:发表于2018-12-25 09:35 被阅读0次

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

自己用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];

}

好的,问题解决。

相关文章

网友评论

      本文标题:ios 导航栏隐藏时的一个坑

      本文链接:https://www.haomeiwen.com/subject/ndsxhqtx.html