【问题标题】:How to change UIViewControllerBasedStatusBarAppearance to YES/NO programmatically in iOS 7?如何在 iOS 7 中以编程方式将 UIViewControllerBasedStatusBarAppearance 更改为 YES/NO?
【发布时间】:2014-02-20 20:35:47
【问题描述】:

我的应用程序有深色背景,但在 iOS 7 中状态栏变得透明。所以我在那里什么都看不到,只有角落里的绿色电池指示灯。如何将状态栏文本颜色更改为绿色或橙色,就像在主屏幕上一样?

我知道

  1. 在plist中设置UIViewControllerBasedStatusBarAppearanceYES

  2. viewDidLoad 中执行[self setNeedsStatusBarAppearanceUpdate];

  3. 添加如下方法:

    -(UIStatusBarStyle)preferredStatusBarStyle{ 
        return UIStatusBarStyleLightContent; 
    }
    

如何以编程方式更改UIViewControllerBasedStatusBarAppearance

提前谢谢...

【问题讨论】:

  • [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];将此添加到应用程序委托启动方法,这会将整个应用程序的状态栏样式更改为白色

标签: iphone ios7 uistatusbar


【解决方案1】:

在 Info.plist 中将“查看基于控制器的状态栏外观”设置为 NO。

然后,将其添加到您的 appdelegate.m 类中的 didfinishlaunchingwithoptions 方法中。

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

这适用于 ios 7。

【讨论】:

    【解决方案2】:

    正如其他人提到的,在应用程序的 info.plist 中添加“查看基于控制器的状态栏外观”并将其设置为 Type: Boolean 和 Value: NO

    供您参考:

    在 iOS 9 中

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

    方法已弃用。

    所以你可以使用这个:

    application.statusBarStyle = UIStatusBarStyleLightContent;
    

    在方法中添加这行代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    

    它存在于 appDelegate.m 文件中。这将改变整个应用程序的状态栏文本颜色。

    因此,如果您有任何背景的屏幕可能是暗的或亮的,那么在该屏幕中,您可以通过使用以下方法来设置状态栏颜色:

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多