有没有更简单的方法来设置我的应用程序的PreferredStatusBarStyle?

时间:2014-01-19 20:17:04

标签: ios xamarin.ios xamarin

我对我为iOS 7设置应用效果UIStatusBarStyle的方式非常不满意。本质上我已经有了一个自定义演示器来设置SlidingPanels导航(汉堡菜单)。在自定义演示者内部,我定义了一个RootController,这就是我感到困惑/剔除/烦恼的地方......选择一个。 </rant>

通常我想做这样的事情并完成它。

RootController = new UIViewController();

// this line won't work because PreferredStatusBarStyle is a Method Group and not a property WTF
RootController.PreferredStatusBarStyle = UIStatusBarStyle.LightContent; 

但似乎没有办法在iOS中干净地设置属性。因此,我坚持这种丑陋。

RootController = new CustomUiViewController();

//.....

public class CustomUiViewController : UIViewController
{
    public override UIStatusBarStyle PreferredStatusBarStyle()
    {
        return UIStatusBarStyle.LightContent;
    }
}

然后在每个视图的ViewDidLoad()中,我必须致电SetNeedsStatusBarAppearanceUpdate(),这对我来说是荒谬的。

是否有更清洁/更简单的方法来设置它?

上述方法的一个副作用是当应用程序首次加载时,状态栏仍然是“黑暗”。因此,在ViewDidLoad()之后你才能看到时钟。

1 个答案:

答案 0 :(得分:13)

只需在应用的info.plist中添加几个键:

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>