2

ran into a weird issue. If I set the prompt on the navigation controller, navbar overlaps the content of the screen. What is the proper way of dealing with this?

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

When this view controller is pushed on, it first appears, then it resizes it's navigation bar to show the prompt in it. But that has a nasty side effect of not resizing the screen content below and covers a good amount of stuff I actually need on the screen.

What's a preferred way of handling this issue? Layout is in xib if that helps.

4

1 に答える 1

3

あなたが抱えている問題の1つは、init関数がsuperを呼び出す必要があることです。あなたの例に従うと、次のようになります。

- (id)initWithSomeStuff:(id)stuff
{
    self = [super init];
    if (self) {
        self.title = @"My Title";
        self.prompt = @"Prompt";
    }
    return self;
}

次に、iOS 7 向けに開発していますか? デフォルトでコンテンツをナビゲーション バーで覆うのは、意図された動作です。この動作を抑制したい場合は、View Controller で次の操作を実行します。

self.edgesForExtendedLayout = UIRectEdgeNone; 
self.extendedLayoutIncludesOpaqueBars = NO; 

ストーリー ボードのビュー コントローラーでこれらを設定することもできます。これらは、[プロパティ] タブの [エッジの延長] の下に表示されます。

于 2013-10-19T01:14:35.313 に答える