2012-02-26 124 views
3

我有一個支持所有四個方向的父視圖控制器。它提供了一個子視圖控制器,並且如果在呈現子視圖控制器的同時旋轉設備,然後關閉子視圖,則父視圖控制器將無法正確旋轉。下面是我在父視圖控制器使用旋轉代碼:父視圖控制器不會在提供子視圖控制器時旋轉

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 

if (toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) { 

    newestIssueCoverImageButton.frame = CGRectMake(40, 20, 688, 865); 
    shadow.frame = CGRectMake(40, 20, 688, 865); 
    recordView.frame = CGRectMake(0, 44, 768, 916); 
    classifiedsWebView.frame = CGRectMake(0, 44, 768, 916); 

} else { 

    newestIssueCoverImageButton.frame = CGRectMake(269, 20, 486, 613); 
    shadow.frame = CGRectMake(269, 20, 486, 613); 
    recordView.frame = CGRectMake(0, 44, 1024, 660); 
    classifiedsWebView.frame = CGRectMake(0, 44, 1024, 660); 

} 

父看,雖然沒有使用這個代碼,我只是旋轉的裝置。我如何調用此代碼並確保當用戶正在查看孩子時父視圖控制器已正確旋轉?謝謝你的幫助。

回答

8

從蘋果的文檔:

如果在一個方向發生變化視圖控制器是不可見的,然後旋轉方法不會被調用。但是,視圖變爲可見時,將調用viewWillLayoutSubviews方法。此方法的實現可以調用statusBarOrientation方法來確定設備方向。

我添加了一個布爾跟蹤時,沒有頂的viewController,則:

- (void)viewWillLayoutSubviews { 

    if (notTopController) { 

     [self willRotateToInterfaceOrientation:[[UIApplication sharedApplication] statusBarOrientation] duration:0]; 
     [self willAnimateRotationToInterfaceOrientation:[[UIApplication sharedApplication] statusBarOrientation] duration:0]; 

     notTopController = NO; 

} 

對我的作品好爲止。

0

請確定,均爲父級和子級視圖控制器支持旋轉。 shouldAutorotateToInterfaceOrientation:

2

shouldAutorotateToInterfaceOrientationwillRotateToInterfaceOrientationRotateToInterfaceOrientation只有得到所謂的電流/可見視圖控制器上,而不是在堆棧上的意見「後面」它。就你的情況而言,當孩子可見時,它將在孩子身上被呼叫,但不在父母身上。

如果出現了一個旋轉的事件,當您關閉該子視圖控制器(假設你使用一個NavigationController),shouldAutorotateToInterfaceOrientation將父被稱爲(但不will/didRotate)。如果你想自己看,在所有這些方法中拋出一些NSLog()語句。

知道所有這些,快速解決方法是將您的調整大小代碼放入shouldAutorotateToInterfaceOrientation

+0

感謝您的幫助和解釋。我會嘗試。順便說一句,我看着你的個人資料,你的Trakr應用程序真的很酷。 – 2012-02-27 02:56:50

+0

謝謝!目前正在等待審查... – Kevin 2012-02-27 16:14:58

相關問題