UINavigationbar提示重叠屏幕内容

时间:2013-10-18 23:00:13

标签: iphone objective-c ios7

遇到了一个奇怪的问题。如果我在导航控制器上设置提示,则导航栏会重叠屏幕内容。处理这个问题的正确方法是什么?

    -(id)initwithsomestuff:(stuff)
    {
...
    self.title = @"My Title";
    self.navigationItem.prompt = "@Prompt";
...
    }

当按下此视图控制器时,它首先出现,然后调整其导航栏的大小以显示其中的提示。但这有一个令人讨厌的副作用,就是不调整下面的屏幕内容,并覆盖我在屏幕上实际需要的大量内容。

处理此问题的首选方法是什么?如果有帮助,布局在xib中。

1 个答案:

答案 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; 

您也可以在故事板中的视图控制器上设置这些。它们显示在“属性”选项卡上的“扩展边缘”下。