gpt4 book ai didi

ios - UIApplication.statusBarStyle 在 vi​​ewWillAppear 和 viewDidAppear 之间变化

转载 作者:可可西里 更新时间:2023-11-01 05:02:47 26 4
gpt4 key购买 nike

在最初为以前的版本设计的 iOS7 中运行一个应用程序,一个深灰色的导航栏为文本为黑色的状态栏着色。

我正在尝试使其适应最新版本,并且我正在将 UIApplication.statusBarStyle 设置为 UIStatusBarStyleLightContent,如下所示:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

这段代码应该将状态栏文本颜色更改为白色,但它没有。我在我的 UIApplication 实例的 _statusBarRequestedStyle 属性中放置了一个观察点,我可以看到在执行 viewWillAppear 和 viewDidAppear 方法之间从 UIApplicationMain 进行的一些调用将其设置为 0 (UIStatusBarStyleDefault)。

此时我无法弄清楚状态栏样式发生了什么/为什么会发生变化,如果您有同样的经历,我将不胜感激。

提前致谢!

编辑:来自 iOS 7 UI 转换指南 ( https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Bars.html )

In iOS 7, you can control the style of the status bar from an individual view controller and change it while the app runs. If you prefer to opt out of this behavior and set the status bar style by using the UIApplication statusBarStyle method, add the UIViewControllerBasedStatusBarAppearance key to an app’s Info.plist file and give it the value NO.

最佳答案

选项 1:

1) 如果您的应用是基于 View Controller 的,那么您必须像这样设置它的 app.plist 文件:

 UIViewControllerBasedStatusBarAppearance=NO;

enter image description here

2) 你必须在每个 Controller 中设置这个方法:

 -(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}

选项 2:

AppDelegate.m 文件中的 application didFinishLaunchingWithOptions: 方法中写入这一行

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

可能会有帮助。

关于ios - UIApplication.statusBarStyle 在 vi​​ewWillAppear 和 viewDidAppear 之间变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com