不调用preferredStatusBarStyle [英] preferredStatusBarStyle isn't called

查看:171
本文介绍了不调用preferredStatusBarStyle的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我跟着这个主题来覆盖 -preferredStatusBarStyle ,但不会调用它。
我可以更改任何选项以启用它吗? (我在我的项目中使用了XIB。)

I followed this thread to override -preferredStatusBarStyle, but it isn't called. Are there any options that I can change to enable it? (I'm using XIBs in my project.)

推荐答案

可能的根本原因



我遇到了同样的问题,并且发现它发生了,因为我没有在我的应用程序窗口中设置根视图控制器。

Possible root cause

I had the same problem, and figured out it was happening because I wasn't setting the root view controller in my application window.

UIViewController ,其中我实现了 preferredStatusBarStyle 用于 UITabBarController ,它控制了屏幕上视图的外观。

The UIViewController in which I had implemented the preferredStatusBarStyle was used in a UITabBarController, which controlled the appearance of the views on the screen.

当我设置root时视图控制器指向此 UITabBarController ,状态栏更改开始按预期正常工作(以及 preferredStatusBarStyle 方法被叫了。

When I set the root view controller to point to this UITabBarController, the status bar changes started to work correctly, as expected (and the preferredStatusBarStyle method was getting called).

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ... // other view controller loading/setup code

    self.window.rootViewController = rootTabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}



替代方法(在iOS 9中已弃用)



或者,您可以根据需要在每个视图控制器中调用以下方法之一,而不必使用 setNeedsStatusBarAppearanceUpdate

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];

请注意,您还需要设置 UIViewControllerBasedStatusBarAppearance

Note that you'll also need to set UIViewControllerBasedStatusBarAppearance to NO in the plist file if you use this method.

这篇关于不调用preferredStatusBarStyle的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆