2016-06-21 335 views
3

在某些UIViewController,UINavigationBar隱藏在狀態欄下。下面是截圖:UINavigationBar隱藏在狀態欄

<code>UINavigationBar</code> under StatusBar

但是,當我改變View controller-based status bar appearanceYES然後UINavigationBar看起來很完美。下面是截圖:

black text in <code>UIStatusBar</code>

但在這種情況下,status bartextColor去從白到黑的變化。我想要狀態欄的白色文字顏色,並從狀態欄中取消隱藏UINavigationBar。有什麼辦法解決它(狀態欄的白色和取消隱藏UINavigationBar)。

在此先感謝!

+0

是的,但它不工作。 :( –

+0

如果你拖拽你的導航欄,然後對其應用約束,那麼它的約束問題..添加一些空間topConstriant –

+0

@SahebSingh我沒有在任何UIViewController中使用約束,我只是解決現有代碼的問題。 –

回答

0

在你的AppDelegate中的info.plist

View controller-based status bar appearance to NO 

添加該代碼和Info.plist的

在AppDelegate中

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 
+0

已經添加但不工作。 –

+0

設置 將基於控制器的狀態欄外觀設置爲NO –

+0

如果我將基於視圖控制器的狀態欄外觀設置爲NO,則UINavigationBar隱藏在UIStatusBar –

0

您可以隨時手動設置導航欄的由來viewWillAppear(animated:Bool)

self.navigationController?.navigationBar.frame.origin = CGPoint(0, 20) 
1

將這些鍵添加到您的項目Info.plist,你應該沒問題。

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