我的应用程序仅支持ios7 +导航栏设置使用状态栏下方显示的新64px高栏。以下是应用启动时的样子:
如果我执行任何类型的“presentViewController”,当我关闭视图时,导航栏会移回到44px高度并仍然显示在状态栏下方,这又会使视图的所有内容也向上移动。这是看起来像:
如果我呈现我自己的一个视图或者我只是呈现UIImagePickerView并不重要,通过导航控制器的任何类型的向上滑动模式都会破坏导航栏设置。关于如何解决这个问题的任何想法?
一些注意事项:
更新:
我在PKRevealController(https://github.com/pkluz/PKRevealController)中有导航控制器。将揭示控制器取出并将导航控制器添加到窗口本身就可以解决问题...为什么揭示控制器会使其表现不同?
解决方案:
原来,PKRevealController库导致了这个问题。我重新设计了如何在AppDelegate中设置它并解决了问题,尽管它有点像“hacky”。我把我的“之前”和“之后”配置放在下面:
初始设置为:
修复
答案 0 :(得分:3)
如果它的navigationcontroller比你可以在每个viewcontroller的viewdidload中使用它:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {
self.edgesForExtendedLayout = UIRectEdgeNone;
}
答案 1 :(得分:0)
我有同样的问题,但只需将UINavigationBar Y位置设置为20px而不是0px即可轻松解决。然后你必须将UINavigationBarDelegate分配给你的ViewController:
[_navigationBar setDelegate:self];
此外,您必须将此方法添加到ViewController中,因为委托分配将调用该方法:
-(UIBarPosition)positionForBar:(id<UIBarPositioning>)bar
{
return UIBarPositionTopAttached;
}