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

Cha*_*ell 2 xamarin.ios ios xamarin

UIStatusBarStyle对我为iOS 7 设置应用程序效果的方式非常不满意.基本上我有一个自定义主持人设置了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; 
Run Code Online (Sandbox Code Playgroud)

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

RootController = new CustomUiViewController();

//.....

public class CustomUiViewController : UIViewController
{
    public override UIStatusBarStyle PreferredStatusBarStyle()
    {
        return UIStatusBarStyle.LightContent;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在ViewDidLoad()每一个观点中,我都要打电话SetNeedsStatusBarAppearanceUpdate(),这对我来说是荒谬的.

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

上述方法的一个副作用是当应用程序首次加载时,StatusBar仍然是"黑暗",因此直到之后才能看到时钟ViewDidLoad().

小智 13

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

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
Run Code Online (Sandbox Code Playgroud)