首页 文章

显示模态视图控制器时设备旋转

提问于
浏览
2

我有一个支持动态设备定位的OpenGL应用程序 . 我可以将设备旋转到4个物理方向中的任何一个,一切都按预期工作 .

现在我添加了一个模态视图控制器,以便您可以获得设置视图(这是非OpenGL) . 模态视图控制器还支持任何设备方向 .

但是,如果我在方向A(例如肖像)中呈现模态视图控制器并在方向B(例如横向右侧)中将其关闭,则在它被调暗之后,OpenGL视图被破坏(宽高比看起来错误) . 我必须将设备定向到OpenGL视图的不同方向以“纠正”自身 .

当模态视图控制器被解除时,它就像应用程序认为它已经在方向B中,因此它不会旋转OpenGL视图 .

如果我在模态视图控制器上禁用旋转,那么如果我在方向A中呈现模态控制器,将设备旋转到方向B(模态视图控制器不再旋转)并关闭控制器,则OpenGL视图获取willRotateToInterfaceOrientation / didRotateFromInterfaceOrientation并正确取向为方向B.

有没有办法保留模态控制器的动态方向,但在模态控制器被解除后,OpenGL视图是否也正确旋转?

谢谢 .

1 回答

  • 1

    我在自定义操作表中遇到了类似的问题,并决定最简单的答案是在显示视图时暂时禁止旋转 . 您可以在Apple Notes应用程序中看到此示例,只要显示操作表,方向就会被锁定 .

    我知道你已经尝试过这个并且它有效,我认为你应该认为这是一个有效的解决方案 .

    我不知道如何解决它,否则,您可能需要在模态视图控制器中存储方向的任何更改,并将它们同时或在解除设置时一次传递回OpenGL视图控制器查看,然后手动重新渲染 .

相关问题