ios – UINavigationController栏涵盖了uiview控制器的内容

我有一个UIViewController,MyViewController,顶部有一个UIToolbar.使用界面构建器,文档大纲如下所示:

View 
  - subview1
  - subview2
  - UIToolbar
     - Bar Button Item1
     - Bar Button Item2
     - Bar Button Item3

MyViewController在我的应用程序中使用有时它是在一个UINavigationController,其他时候它在一个UIPopoverView.

当它出现在UINavigationController中时,导航栏会覆盖UIToolbar以及View顶部附近的所有其他内容.在this screenshot,你可以看到UIToolbar被完全遮盖,UIButton有一个绿色灯泡的图像被部分覆盖.

根据apple documentation

Any view that needs to be anchored to the top and just below the status bar (i.e. UIToolbar, UIButton, etc.) requires additional work for proper placement.

它继续给出一个解决方案,只需使用约束将VC的内容移动x像素,在我的情况下,UIToolbar.这似乎不是一个很好的解决方案,因为它假定您始终希望内容向下移动到导航栏下方.在我的情况下,我显然不是因为MyViewController并不总是在一个UINavigationController.当我使用这些文档中提供的约束解决方案时,UIToolbar在MyViewController不在UINavigationController的所有情况下从顶部奇异地浮动x像素未锁定.

我是否想要在UINavigationController中显示VC的内容吗?非常感谢.

在iOS7中,UINavigationBar具有半透明的属性.通过这个,UINavigationViewController的子VC的视图默认在UINavigationBar下.

如果您不需要获得半透明效果,请使用以下代码关闭此属性.

self.navigationController.navigationBar.translucent = NO

您也可以使用@ ldindu的方法来实现您的需要.

相关文章
相关标签/搜索