2014-04-11 27 views
0

我有一個視圖控制器(NIB)是從兩個不同的地方調用是固定的。當我從一個地方調用它,所有看起來很好,但從另一個它似乎總是有一個20像素(看起來足夠的狀態欄)抵消頂部..查看由約20像素向下推,但是當我旋轉屏幕

如果我旋轉設備這消失了,它看起來OK..I've一直沒有運氣解決此從昨天起 - 據我可以告訴我什麼也沒做不同的,當我加載屏幕..

我真的不知道要貼什麼代碼,因爲從這兩個地方他們都以同樣的方式被調用,我正在尋找任何想法 - 即使這不是一個答案,因爲我似乎沒有想法。

截圖,

+0

顯示,因爲它可能是一些在'viewDidLoad' /'viewDidAppear'等也都是用你的窗口都打視圖代碼? –

+0

什麼是視圖的'autoresizingMask'?或者,如果您使用自動佈局,則使用其最大距離到父級約束值。 –

+0

修正: 這是呈現VC錯誤的一個實際上是主視圖控制器的孩子的孩子。當我從父母的父母提交它時,它工作正常.. – JDM

回答

1

你嘗試在viewDidLoad設置edgesForExtendedLayout

if (IS_OS_7_OR_LATER && [self respondsToSelector:@selector(edgesForExtendedLayout)]) { 
    self.edgesForExtendedLayout = UIRectEdgeNone; 
} 

編輯:這裏是來自蘋果的iOS 7 Transition Guide,如果你想在這是怎麼固定的iOS 7

+0

我曾嘗試過,並得到了相同的結果。我現在唯一的想法是,它是由調用它的viewController引起的,因爲一旦它進入新的viewcontroller,被調用的代碼在兩種情況下都是相同的。 – JDM

0

我希望這些問題將有助於我們與您查明問題的詳細信息:

  1. 您使用的界面生成器或程序調用VC?

  2. 你有沒有添加任何或沒有限制?

我最好的猜測是,你試圖從裝載VC:

- (void)viewWillLayoutSubviews 

而不是

- (void)viewDidLoad 

其原因的建議是,屏幕邊界不正確加載到viewDidLoad中,您可以通過打印檢查self.view.bounds.width & self.view.bounds.height。在viewDidLoad中,它們設置不正確。這可能導致許多後來的問題。這只是一個瘋狂的猜測。

希望它有幫助。

+0

我正在以編程方式調用。沒有約束,它不使用自動佈局。即使我使用自動佈局,我也會得到相同的結果。我會檢查邊界.. – JDM