我有一个iPhone应用程序,其结构类似于“导航控制器带表 - >下一个视图控制器带表 - > QLPreviewController”。通过在第一个视图控制器(带导航控制器)中的表格单元格中出现新视图控制器与另一个表格,通过点击它的单元格显示QLPreviewController。
例如:在第一个表中有组,在第二个表中 - 所选组的文档和用于预览所选文档的QLPreviewController。
我的应用中的每个ViewController必须仅以纵向(非上部)方向显示,但QLViewController还必须支持横向(左右)。
我在QLPreviewController出现之前将标志canRotate设置为YES。在AppDelegate中如果canRotate == YES
我为任何Orientation返回YES,则旋转QLPreviewController。方法previewControllerWillDismiss中的QLPreviewControllerDelegate:(QLPreviewController *)控制器设置标志canRotate返回NO。但是如果在QLPreviewController解除之前方向是Landscape,那么我的所有ViewController都会保持横向方向......
如何在WillDismiss方法中将ViewController旋转回纵向?
答案 0 :(得分:2)
我在申请表上所做的事情(或多或少与你的一样)是:
1)为两个屏幕设置shouldRotate Yes
。
2)对于第一个视图,设置以下蒙版:
return UIInterfaceOrientationMaskPortrait
对于第二个View put:
return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;