遇到了一个奇怪的问题。如果我在导航控制器上设置提示,则导航栏会重叠屏幕内容。处理这个问题的正确方法是什么?
-(id)initwithsomestuff:(stuff)
{
...
self.title = @"My Title";
self.navigationItem.prompt = "@Prompt";
...
}
当按下此视图控制器时,它首先出现,然后调整其导航栏的大小以显示其中的提示。但这有一个令人讨厌的副作用,就是不调整下面的屏幕内容,并覆盖我在屏幕上实际需要的大量内容。
处理此问题的首选方法是什么?如果有帮助,布局在xib中。
答案 0 :(得分:3)
你遇到的一个问题是你的init函数需要调用super。按照你的例子,它看起来像这样:
- (id)initWithSomeStuff:(id)stuff
{
self = [super init];
if (self) {
self.title = @"My Title";
self.prompt = @"Prompt";
}
return self;
}
接下来,您是针对iOS 7开发的吗?默认情况下,使用导航栏覆盖内容的行为。如果要禁止此行为,请在视图控制器上执行以下操作:
self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = NO;
您也可以在故事板中的视图控制器上设置这些。它们显示在“属性”选项卡上的“扩展边缘”下。