【问题标题】:Is there an easier way to set the PreferredStatusBarStyle of my app?有没有更简单的方法来设置我的应用程序的 PreferredStatusBarStyle?
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-12-24
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    相关资源
    最近更新 更多