将navigationcontroller栏设置为不透明移动细节滚动视图向下

dar*_*one 1 iphone mobile objective-c uitableview ios

我在MasterController中使用搜索栏和控制器来访问UITableview.当视图显示时,MasterController中的导航栏是黑色的,直到视图完全加载(不确定为什么?).为了解决这个问题,我设置了self.navigationController.navigationBar.translucent = false;这个固定我最初导航栏为黑色的问题,但现在看起来当我点击MasterController的uitableview中的一个单元格时,DetailView中加载的内容大约向下移动搜索栏的大小,但它只是已经移动的内容上方的空白区域...当我删除MasterController中的半透明属性时,DetailView中的内容很好而且没有移动...

所以我的问题是,是什么让这些内容发生变化,如何阻止内容被转移并拥有不透明的导航栏...

ria*_*uke 6

在iOS 7中,默认情况下,视图控制器的视图在包含在UINavigationController中时在半透明导航栏下扩展,但不包含在不透明导航栏中.extendedLayoutIncludesOpaqueBars如果您希望它在不透明的导航栏下扩展,您可以设置视图控制器的属性.

当您说您的滚动视图在您的详细视图控制器上移动时,可能是因为它的y原点未设置为零以便在半透明导航栏下延伸的视图偏移,但是因为您的导航栏现在是不透明的并且您的视图未延伸在它下面,空间现在可见.

更多视图控制器实际上会自动在它们包含的滚动视图上添加插入内容,以便在视图控制器视图在导航栏下方扩展时,它们的内容不会被遮挡.它由automaticAdjustsScrollViewInsets属性设置,默认情况下该属性设置为YES.