2012-04-29 83 views
0

我有三個viewcontrollers都在導航堆棧中。第一個視圖控制器不使用uitoolbar,第二個視圖控制器不使用,第三個視圖控制器不使用uitoolbar。隱藏uitoolbar在頂部留下空隙

問題是,當我從第二個UIViewController轉到第三個UITableViewController時,如果我隱藏工具欄,屏幕頂部會出現一個白色的間隙。

這裏有一個畫面:

gap at top

我現在有[self.navigationController setToolbarHidden:YES animated:YES]; 在第二視圖控制器的viewWillDisappear,但我也把它放在第三視圖控制器viewWillAppear中的方法。兩者都導致差距出現。

我該如何解決這個問題?

+0

你什麼時候隱藏工具欄?推之前或之後,以及在哪種方法? – CodaFi

+0

我更新了問題以回答您的問題。 – ladookie

回答

0

首先,我建議使用setToolbarHidden:YES animated:NO讓新的UIViewController在沒有工具欄的情況下出現。我認爲你的方法會在最初顯示,然後消失,對吧?如果使用animated:NO(或者使用方法簽名而不使用animated:),則當第三個UIViewController被推入屏幕時,新的UIViewController應該「推」掉第二個UIViewController的UIToolbar。其次,您可能需要在界面構建器中查看您的UIViewController視圖的衝擊和支撐。這幾乎肯定是造成這種差距的原因。您可能希望擁有固定的頂部和底部邊距以及靈活的高度。

+0

表視圖的支柱連接到屏幕的頂部,底部,左側和右側。 – ladookie

+0

你有靈活的身高嗎?也就是說,上下雙點箭頭是否被點擊? – mbm29414

+0

是的。這是一個UITableViewController,它不會讓我改變這一點。 – ladookie

0

我會回答我自己的問題,但我不會接受它,因爲它是hacky。

我能夠通過在viewDidLoad中的開頭添加這行代碼進行修復:

[self.tableView setFrame: CGRectMake(0, 0, 320, 493)]; 

基本上,我設置的tableview框架的高度爲比一個完整的屏幕的尺寸更大的13個像素(這是320×480)。

+0

雖然這可能會在短期內發揮作用,但請相信我,您最好精打細算,因爲您可能需要爲不同的應用程序在風景,iPad等方面使用相同的功能。 – mbm29414