我正在开发一个iOS应用程序,允许人们玩两个不同的游戏之一。
这两个游戏都是在一组回合中进行的。当玩家完成一轮游戏时,应用程序转换到显示结果的新场景,然后转换到另一轮场景或结束游戏场景。
由于应用程序中场景的暂时性,因此在更传统的应用程序中持久化场景意义不大,因为在传统应用程序中,用户可以返回到以前的场景。
为此,大多数场景导航都是通过使用UINavigationViewController和简单地调用setViewControllers(animated:)来完成的,并提供了一个仅包含下一个场景的UIViewController的数组,这种方法工作得很好。
我提到过,该应用程序将允许用户玩两个游戏中的一个。事实证明,在iPhone上,一款游戏最好在纵向模式下玩,另一款游戏最好在横向模式下玩。我希望能够控制特定UIViewController在激活时所使用的用户界面方向。
我已经尝试过使用UINavigationController的supportedInterfaceOrientations属性和UIApplicationDelegate的application(_ application: supportedInterfaceOrientationsFor window:)属性,并且能够将其用于标准应用程序。但是,当我尝试使用setViewControllers(animated:)将内容应用于游戏应用程序的工作方式时,似乎没有调用与应用所需用户界面方向相关的方法,并且所有场景都以相同的方向显示。
对于如何让我的应用程序中的场景以特定的用户界面方向显示,人们有什么建议?
发布于 2017-07-28 15:57:50
尝试让你呈现的视图控制器调用下面的方法,它的视图将会出现,或者视图确实会出现:
class func attemptRotationToDeviceOrientation()某些视图控制器可能希望使用特定于应用程序的条件来确定支持的界面方向。如果你的视图控制器做到了这一点,当这些条件改变时,你的应用程序应该调用这个类方法。系统会立即尝试旋转到新方向。
https://stackoverflow.com/questions/45363397
复制相似问题