我目前正在开发适用于iOS 5和iOS 6的应用程序。 除了1之外,我的大部分观看仅在纵向方向上进行。
RotationNavigationController :覆盖UINavigationController
和supportedInterfaceOrientation
的主shouldAutorotate
。
PageViewController :在RotationNavigationController中推送,仅以纵向显示。
ImageViewController :在PageViewController之后推送。与UIInterfaceOrientationMaskAllButUpsideDown
一起显示。
以下是ImageViewController
ViewDidLoad
- (void)viewDidLoad
{
// currentMask is the value returned by supportedInterfaceOrientation
[(RotationNavigationController*)self.navigationController setCurrentMask:UIInterfaceOrientationMaskAllButUpsideDown];
[(RotationNavigationController*)self.navigationController setShouldAutorotate:YES];
}
当我在横向ImageViewController中popViewController
时,我也会以横向模式回到PageViewController,而PageViewController只支持纵向方向。
当然,我将ImageViewController的viewWillDisappear
中的蒙版重置为肖像。
PageViewController是否有办法保持纵向方向?
答案 0 :(得分:0)
感谢您的链接emrys57。我在那里找到了解决方案,最后它非常简单:
在RotationNavigationController中,只需添加以下方法:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}