ios11以下系统导航条丢失的问题

一、这篇文章解决的问题是

ios11系统以下,从一个需要隐藏导航条的视图跳转另一个不需要隐藏导航条的视图中,假如前一个视图需要更换状态栏样式,这个时候用以下代码会导致使用导航条手势去来回切换视图,导致导航条丢失。

1.第一个视图的设置导航条隐藏

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

且通过以下方法更换状态栏样式

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

2.第二个视图设置导航条不隐藏

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

这个时候如果使用导航条手势来回切换视图,会出现导航丢失的情况,如下图(图片有点大,稍稍的等一下吧)


image

二、解决方法如下:

1.将隐藏导航条的方法改为

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

导航条不丢失了,但是交互效果很不友好。

2.在info.plist设置View controller-based status bar appearance为NO,使用下面的代码更改状态栏

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

可以解决这个问题,推测是ios11以下的系统对于导航条和状态栏的交互处理有问题。

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

推荐阅读更多精彩内容

  • 佛家里有一个字很玄妙,叫做“缘”。 缘聚缘散,不必强求。 然而很多人的悲剧却起源于不甘心,非要与那些本与自己无缘的...
    一致的傻傻阅读 113评论 0 0
  • 朋友圈应不应该屏蔽父母,答案当然要屏蔽。 首先,看看”朋友圈“这三个字,属于朋友的圈子。朋友圈的本意是让我们的朋友...
    苏银淋阅读 308评论 1 1
  • 我经常在面试中询问能否查阅公司曾经做过的用研报告,因为我总觉得从一篇报告中能够学习到很多东西:整体的研究思路、研究...
    IvanMu阅读 1,320评论 3 6