【发布时间】:2014-02-08 22:04:57
【问题描述】:
我对必须为 iOS 7 设置我的应用程序的 EFFING 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() 之后您才能看到时钟。
【问题讨论】:
-
如果您需要整个应用程序使用相同的状态栏样式,请查看this question。
-
@x2_ 这是我用来使上述代码正常工作的问题。我可能会错过什么?
-
只需在应用的 info.plist 中添加几个键:
<key>UIViewControllerBasedStatusBarAppearance</key><false/><key>UIStatusBarStyle</key><string>UIStatusBarStyleLightContent</string> -
啊,做到了。我仍然需要设置 UINavigationBar.Appearance,但至少现在它是干净的。
-
@x2_ 将其发布为答案,我会接受。
标签: ios xamarin.ios xamarin