我正在创建一个支持 ios 版本 5 和 6 的 iPad 应用程序。我有一个视图控制器,它仅在应用程序开始时以纵向模式显示。后来我有一个支持所有界面方向的视图控制器。
我只是让它在 iOS 5 或 iOS 6 上工作。意思是:在 iOS 6 上,视图控制器中支持的界面方向只有在 info.plist 文件中设置时才有效。所以我必须在 info.plist 文件中设置所有界面方向。这一切都适用于 iOS 6,但在 iOS 5 上,如果 iPad 在应用程序启动之前处于纵向状态,则它适用于启动。但是,如果 iPad 处于横向模式,则应用程序以正确的方式启动,但通知中心是错误的,直到您手动执行另一次旋转。
有没有办法将其他一些键放入另一个 iOS 版本的 info.plist 文件中?这是我能想到的唯一解决方案。因为如果我在 info.plist 文件中仅将纵向设置为方向,则它适用于 iOS 5。
编辑:
好吧,我解释的有点混乱。我已经通过以下方法让它在 iOS 6 中完全工作:shouldAutorotate 和supportedInterfaceOrientations:。我的根视图控制器只支持纵向界面方向,在我的 info.plist 中我必须选择所有界面方向。
问题:
当我在 iOS 5 上启动应用程序时,我的 iPad 处于横向状态:
根视图控制器处于纵向模式,但应用程序的行为就像处于横向模式,这意味着可以从侧面访问通知中心等等。
我能想到的解决方案:
问题是我必须在 info.plist 文件中设置所有界面方向。这意味着在 iOS 5 中,即使我只是在方法 shouldAutorotateToInterfaceOrientation: 中放置了一个可能的方向,应用程序也会尝试以横向模式启动(上述行为已解释)。
所以会有两种解决方案:当在 info.plist 文件中未选择特定界面方向时,我可以让应用程序在 iOS 6 中旋转,或者我可以“更改”iOS 5 的旋转。
希望您能够帮助我。