2013-01-19 189 views
5

我一直在關注this question上的解決方案,以顯示具有透明背景的視圖。我遇到的問題是一旦顯示了模式視圖控制器,底層視圖就不再被旋轉。iOS:將視圖旋轉應用於模態視圖下的視圖控制器

例如,如果A是我的視圖控制器,那麼B是我的模態視圖。問題如下。我目前有我的設備肖像,並顯示A。然後,我以模態方式呈現B。然後我旋轉我的設備,B旋轉,但A保持原樣。

請有人建議如何處理此旋轉,以便底層視圖(A)也旋轉?

+0

iOS系統版本文檔? – foundry

+0

我正在使用iOS 6.0 –

+0

當[Modal View Controller旋轉時iOS旋轉視圖控制器]的可能重複(http://stackoverflow.com/questions/13987528/ios-rotate-view-controller-when-modal-view-controller - 旋轉) – michael23

回答

6

ModalViewController用於中斷當前的工作流程並顯示一組新的視圖。因此,當您以模態呈現時,在這種情況下,您呈現的是B,當前活動的Viewcontroller是B而不是A.

ViewController是模型 - 視圖 - 控制器(MVC)設計模式中的傳統控制器對象。他們還負責用戶界面,手勢識別,事件管理(例如按鈕)和視圖對齊。

當您呈現B時,當前視圖控制器將從A更改爲B,因此當您嘗試旋轉時(如果提供了方向支持),B的視圖會在視圖控制器處於活動狀態時生效並響應旋轉。通常我們不會注意到這些,因爲視圖是不透明的。在這種情況下,視圖是透明的,我們注意到A沒有響應旋轉。

我試着在iOS6的上面的例子中(你所提到的那個)

ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"]; 
vc.view.backgroundColor = [UIColor clearColor]; 
self.modalPresentationStyle = UIModalPresentationCurrentContext; 
[self presentViewController:vc animated:YES completion:nil]; 

這裏的一個留在肖像模式

當我做這個添加第二視圖 - 控制的觀點作爲一個子視圖,A改到風景

ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"]; 
vc.view.backgroundColor = [UIColor clearColor]; 
self.view addSubview:vc.view]; 

此happend因爲在第二試驗中活性的ViewController是A和不是B爲B的觀點是一個子視圖添加到A.通過蘋果的去在

+0

具有相同的問題,我的觀點下模態視圖控制器不旋轉ios7 ..要做什麼?在ios8中使用UIModalPresentationOverCurrentContext在模態下旋轉視圖 – iWatch