欢迎光临
我们一直在努力

swift 导航栏,swift隐藏导航栏

在网上看了很多资料,都是独自设置导航栏或者状态栏,但是在我们的项目里面有这样一个问题:

我们的首页需要隐藏导航栏并且状态栏的颜色是白色,

而push出来的界面需要显示导航栏并且状态栏颜色设置成黑色,这个时候出现一个导航栏错乱的问题,push出来的界面导航栏跑到了首页,并且再push后导航栏却不见了

首页截图

IMG_0114.PNG

push页截图

IMG_0115.PNG

出现问题的首页

IMG_0116.PNG

这个问题思来想去都不知道为什么,还是没有办法,最后想了一个可以解决这一问题的方法,具体怎么修改状态栏和导航栏这里就不说了,主要说下两者同时修改出现问题的解决方式

我试了一下,如果不改变状态栏的颜色(具体说应该是不改变状态栏类型),就不会出现这种情况,那我就从这一地方入手,我们可以在首页完全展示的时候再去修改状态栏

var statusType:UIStatusBarStyle = .lightContent

override func viewDidAppear(_ animated: Bool) {

super.viewDidAppear(animated)

statusType = .lightContent

setNeedsStatusBarAppearanceUpdate()

}

override var preferredStatusBarStyle: UIStatusBarStyle {

return statusType

}

@objc func buttonAction() {

navigationController?.pushViewController(TwoViewController(), animated: true)

statusType = .default

}

主要思路就是在push的时候记录跳转界面的状态栏颜色,在首页没有完全显示的时候,状态栏始终与push界面保持一致,当完全展示后,在viewDidAppear中,修改成白色,再主动调用一次修改状态栏颜色的方法setNeedsStatusBarAppearanceUpdate()

这一方法我觉得只能解决一时的问题,并不是长久之计,所以我希望看到的小伙伴如果有更好的方法可以一起分享下,我的QQ:1459709117,一起进步哦vps云服务器!!!

42976182

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。