我对我为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()
之后你才能看到时钟。
答案 0 :(得分:13)
只需在应用的info.plist中添加几个键:
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>