2013-10-18 62 views
2

遇到了一個奇怪的問題。如果我在導航控制器上設置了提示,導航欄會重疊屏幕的內容。處理這個問題的正確方法是什麼?UINavigationbar提示重疊屏幕內容

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

當此視圖控制器被推動時,它第一次出現,則它重新調整它的導航欄顯示該提示在它。但是這樣做會產生令人討厭的負面影響,它不會調整屏幕內容的大小,並且會覆蓋屏幕上實際需要的大量內容。

處理此問題的首選方法是什麼?如果有幫助,佈局在xib中。

回答

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; 

您也可以在故事板上設置這些在視圖控制器。它們顯示在「屬性」選項卡的「延伸邊線」下。

+0

感謝self = [super init]的存在......爲了簡潔起見,我只是將它留在這裏。 – Chris

+0

edgesForExtendedLayout解決了這個問題。 – Chris