2

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

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

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

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

4

1 回答 1

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; 

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

于 2013-10-19T01:14:35.313 回答