gpt4 book ai didi

ios - iOS 7 基于不同 ViewController 设置灯状态栏文字颜色的正确方法

转载 作者:技术小花猫 更新时间:2023-10-29 10:09:04 26 4
gpt4 key购买 nike

我需要让嵌入在 UINavigationController 中的特定 ViewController 具有浅色状态栏文本颜色(但其他 ViewController 的行为不同)。我知道至少有 3 种方法,但都不适用于我的情况。

  1. How to change Status Bar text color in iOS 7 ,方法主要是:

    • 在 plist 中将 UIViewControllerBasedStatusBarAppearance 设置为 YES
    • 在 viewDidLoad 中执行 [self setNeedsStatusBarAppearanceUpdate];
    • 添加如下方法:

      - (UIStatusBarStyle)preferredStatusBarStyle{ 
      return UIStatusBarStyleLightContent;
      }

    在 iOS 7.0.3 上运行,此方法对我不起作用,因为即使我已正确实现所有 3 个步骤,也永远不会调用 preferredStatusBarStyle

  2. UIStatusBarStyle PreferredStatusBarStyle does not work on iOS 7 ,方法主要是:

    将您的 navigationBarbarStyle 设置为 UIBarStyleBlackTranslucent 将提供白色状态栏文本(即。UIStatusBarStyleLightContent) , 和 UIBarStyleDefault 将给出黑色状态栏文本(即 UIStatusBarStyleDefault)。

    此方法在 iPhone 上很正常,但在 iPad 上却不行。

  3. 在 plist 中将 UIViewControllerBasedStatusBarAppearance 设置为 NO,然后使用

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    这显然不适用于这种情况,因为我只需要为两个 ViewController 指定不同的状态栏颜色。

感谢大家的帮助!

最佳答案

对于使用 UINavigationController 有此问题的人,我可以建议创建自定义 UINavigationController 并在其上实现 preferredStatusBarStyle,如下所示:

- (UIStatusBarStyle)preferredStatusBarStyle
{
return [self.topViewController preferredStatusBarStyle];
}

这样状态栏样式将是顶 View Controller 的样式。现在您可以随意实现 View Controller 的 preferredStatusBarStyle

关于ios - iOS 7 基于不同 ViewController 设置灯状态栏文字颜色的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21071623/

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