Swift 修改状态栏

时间:2024-03-13 07:48:06

转载:https://www.jianshu.com/p/b24aebb4c12a

一、过去修改状态栏样式是通过添加 Info.plist 属性来修改:

1、在Info.plist中设置 View controller-based status bar appearance 为 NO

2、在需要修改的控制器中

 

如果需要在全部View中都改变样式,可以写在父类的相关方法中,或者写到AppDelegate.swift中。

二、现在修改状态栏的样式可以使用以下方法,更加简便,不用配置Info.plist 属性:

 

但是如果控制器包装了一个UINavigationController,就会发现即使重写了preferredStatusBarStyle属性,状态栏样式也没有做任何的改变。

这是需要重写UINavigationController的以下2个方法,来让系统调用当前控制器的preferredStatusBarStyle属性。

 

如果应用的第一页面就需要修改状态栏样式,建议在 Deployment Info -> Status Bar Style 中预先设置好,以免开启应用时有过渡的效果。

Swift 修改状态栏

 


三、关于动态修改状态栏

有时我们需要动态的修改状态栏是否隐藏 或者 更改状态栏样式。这时,可以自定义变量来记录状态。
例如:

 

⚠️ 当你present一个VC的时候,被presentVCpreferredStatusBarStyle不会工作,你必须在present前设置: