iphone - 显示模态视图 Controller 时设备旋转

标签 iphone ios uiviewcontroller rotation modalviewcontroller

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

现在我添加了一个模态视图 Controller ,这样您就可以获得一个设置 View (这是非 OpenGL 的)。模态视图 Controller 还支持任何设备方向。

但是,如果我在方向 A(例如纵向)中显示模态视图 Controller 并在方向 B(例如横向右)中关闭它,则在关闭后,OpenGL View 会损坏(纵横比看起来不对)。我必须将设备定向到不同的方向,以便 OpenGL View 自行“校正”。

当模态视图 Controller 被关闭时,应用程序认为它已经处于方向 B,因此它永远不会旋转 OpenGL View 。

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

有什么方法可以保持模态 Controller 的动态方向,同时让 OpenGL View 在模态 Controller 关闭后也能正确旋转?

谢谢。

最佳答案

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

我知道您已经尝试过这个并且它有效,我只是认为您应该将其视为一个有效的解决方案。

否则我不确定如何解决它,您可能需要在模态视图 Controller 中存储方向的任何更改并将它们同时或一次传递回 OpenGL View Controller 关闭设置 View ,然后手动重新渲染。

关于iphone - 显示模态视图 Controller 时设备旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883936/

相关文章:

iphone - 通过 Game Center (GameKit) 通过 3G 发送和接收数据停止工作

ios - 在 itunes 上取消发布应用程序没有反射(reflect)

iPhone 更新应用程序版本(在“设置”中)

iphone - 让 modalViewController 出现的问题

ios - 无法在 UIViewController 中为 UIBarButtonItem 创建 IBOutlet

ios - Swift:使用按钮导航到新的 ViewController

iphone - UITableView自定义Cells、滚动和内存管理

ios - UITableViewCell systemLayoutSizeFittingSize : returning 0 on iOS 7

ios - 如何创建自定义 iOS View 类并实例化它的多个副本(在 IB 中)?

ios - 在Windows 10上开发React-Native APP时是否可以打开IOS模拟器?