我iPad應用視圖控制器的控制自轉具有UIViewController
稱爲MainViewController
呈現稱爲ModalViewController
一個模態頁片UIViewController
。 ModalViewController
然後呈現UIImagePickerController
。iOS 6的後面的UIImagePickerController
這裏是MainViewController.m:
@implementation MainViewController {
...
- (BOOL)shouldAutorotate
{
return YES;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;
}
...
}
所以它旋轉到任何景觀的方位,而當提出ModalViewController
它旋轉的情況也會正確。
但是,當呈現UIImagePickerController
時,它允許旋轉到橫向或縱向取向,並且這允許MainViewController
和ModalViewController
旋轉到不需要的取向。
當UIImagePickerController
在屏幕上時,如何防止MainViewController
和ModalViewController
旋轉?
不,這不是同一個問題。我已經對容器視圖控制器進行了子類化,以便它將旋轉委託給最頂層的視圖控制器。問題是我想讓相機模式旋轉到任意方向,但我需要它後面的控制器不旋轉,或者至少在相機模式被解散時以校正方向結束。 – Josh
噢,我明白了。那麼如果你仍然想讓UIImagePicker控制器旋轉,但你不想讓底層控制器使用它,你是否考慮過旋轉這些圖層?如果方向是您打算支持的方向,您可以檢查旋轉回調,如果不是這種情況,您可以旋轉該圖層,以便最終它仍然可以按照您的需要「顯示」。 – Vik
這是一種「正確」的做事方式嗎?我擔心狀態欄不一定會在正確的位置,並且'self.view.frame'不會像預期的那樣。 – Josh