状态恢复的状态栏样式

Posted

技术标签:

【中文标题】状态恢复的状态栏样式【英文标题】:Statusbar style on state restoration 【发布时间】:2014-05-26 19:34:16 【问题描述】:

有没有办法将应用启动期间的状态栏样式重置为应用状态被保留(保存)时使用的样式?

【问题讨论】:

@SG1 我想这是不可能的。我只是在应用启动期间隐藏状态栏,在项目设置中有一个标志。 【参考方案1】:

您可以使用NSUserDefaults 来存储UIStatusBarStyle,它是用于int 的typedef。当您即将退出应用程序时,将当前状态栏样式存储在NSUserDefaults中。

[[NSUserDefaults standardUserDefaults setInteger:<my status bar style> forKey:@"style"];
// can use things like UIStatusBarStyleLightContent for <my status bar style>

然后,当您想要检索它时,您可以执行以下操作。

UIStatusBarStyle style = [[NSUserDefaults standardUserDefaults] valueForKey:@"style"];

【讨论】:

操作系统尚未将控制权返回给 UIApplicationDelegate,因此我无法运行代码。用于启动画面的状态栏样式显然来自 Info.plist,但我想恢复与保存应用程序状态时屏幕上相同的样式。有时我从 plist 中获取默认样式,有时与状态保存中使用的样式相同。我找不到它时不时地不同的原因。 我还没有实际测试过,但是使用 ios 8 的新启动屏幕视图控制器系统,您应该能够使用此解决方案在运行时为视图控制器返回 -preferredStatusBarStyle。

以上是关于状态恢复的状态栏样式的主要内容,如果未能解决你的问题,请参考以下文章

iOS 15 中的状态栏样式不变

无法使 SFSafariViewController 状态栏样式 lightContent

ios设置状态栏样式

关于导航栏设置状态栏样式问题

有没有办法防止 UIImagePickerController 更改状态栏样式?

更改android中状态栏元素的样式