1

我有一个 iPhone 应用程序,其结构类似于“带有表格的导航控制器 -> 带有表格的下一个视图控制器 -> QLPreviewController”。通过在第一个视图控制器(带有导航控制器)中点击表格的单元格,会出现带有另一个表格的新视图控制器,通过点击它的单元格显示 QLPreviewController。

例如:在第一个表中有组,在第二个表中 - 所选组的文档,以及用于预览所选文档的 QLPreviewController。

我的应用程序中的每个 ViewController 必须仅以纵向(而不是向上)方向出现,但 QLViewController 还必须支持横向(左右)。

在 QLPreviewController 出现之前,我将标志 canRotate 设置为 YES。在 AppDelegate 中,如果canRotate == YES我为任何方向返回 YES,则旋转 QLPreviewController。方法 previewControllerWillDismiss:(QLPreviewController *)controller 中的 QLPreviewControllerDelegate 将标志 canRotate 设置回 NO。但是如果在 QLPreviewController 关闭之前方向是横向,我所有的 ViewControllers 都保持横向方向......

如何在 WillDismiss 方法中将 ViewController 旋转回纵向?

4

1 回答 1

2

我在我的应用程序上所做的(它或多或少像你的)是:

1) 为两个屏幕设置 shouldRotate Yes

2)为第一个视图设置以下掩码:

return UIInterfaceOrientationMaskPortrait

对于第二个视图放:

return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;
于 2012-11-13T08:01:13.627 回答