2016-06-21 246 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/>