设置RootViewController时的方向问题

我正在做一个通用的ios游戏,我有一个方向问题。 我的应用程序都处于横向模式。 如果我做presentModelViewController都没问题,但如果我做setRootViewController,新的控制器会以纵向模式出现。

我究竟做错了什么?

我不确定这是不是你的问题,但我有一个应用程序,从纵向模式下的一个视图控制器开始,然后我试图在横向模式下呈现第二个视图控制器。 我也使用setRootViewController技术,因此我不必解除分配/重新分配第二个视图控制器并丢失我的状态信息,因为用户将经常在两个视图之间切换。

我有同样的问题,即第二个视图控制器将始终以纵向模式而不是横向显示,即使视图控制器本身指定它从不允许纵向模式。

我的修复是确保在应用程序委托中我使用了第一个视图控制器

[window setRootViewController:controller]; 

代替

 [window addSubview:controller.view]; 

这是一个较旧的应用程序,默认情况下原始模板使用addSubview。 似乎如果没有指定原始根视图控制器,则必要的方向消息将永远不会进入设置为root的后续视图控制器。 希望有所帮助!

你有没有设置

 UIInterfaceOrientation 

在info.plist文件中键入您想要的方向? ( 在这种情况下景观