2014-01-19 74 views
2

我非常不滿意我設置應用程序的效果UIStatusBarStyle iOS 7的方式。基本上我有一個自定義主持人,設置SlidingPanels導航(漢堡菜單)。在自定義演示者的內部,我定義了一個RootController,這是我感到困惑/打勾/惱火的地方......選擇一個。 </rant>有沒有更簡單的方法來設置我的應用程序的PreferredStatusBarStyle?

通常情況下,我想只是做這樣的事情,並做到這一點。

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(),這是荒謬的我。

有沒有更簡單/更簡單的方法來設置它?

上述方法的一個副作用是當應用程序第一次加載時,StatusBar仍然是「黑暗」的,因此直到ViewDidLoad()後才能看到時鐘。

+0

如果你需要爲整個應用程序同一個狀態欄風格觀看[提問](http://stackoverflow.com/questions/ 19108513/uistatusbarstyle-preferredstatusbarstyle此結果不功上-IOS-7)。 –

+0

@ x2_這是我用來讓我的上面的代碼工作的問題。我可能會錯過什麼? –

+0

只需添加到您的應用程序的Info.plist幾個鍵: ' UIViewControllerBasedStatusBarAppearance'' '' UIStatusBarStyle'' UIStatusBarStyleLightContent' –

回答

10

只需添加到您的應用程序的Info.plist幾個鍵:

<key>UIViewControllerBasedStatusBarAppearance</key> 
<false/> 
<key>UIStatusBarStyle</key> 
<string>UIStatusBarStyleLightContent</string> 
相關問題