【发布时间】:2012-09-13 09:38:32
【问题描述】:
我的应用仅通过 supportedInterfaceOrientation 属性支持横向。
使用 iOS 6 之前的 iOS,我的应用可以通过 presentViewController:animated:completion: 成功加载 UIImagePickerController 的实例,即使 UIImagePickerController 本身只支持纵向。
图像选择器只是向用户展示自己。用户旋转手机,选择他们的图像,然后旋转回横向。
在 iOS 6.0 下,使用 UIImagePickerController 实例调用 presentViewController:animated:completion: 会使应用程序崩溃。我可以通过向我的supportedInterfaceOrientation 属性添加纵向选项来防止崩溃。
但是,纵向操作对我的应用来说确实没有意义。我原以为我可以使用shouldAutorotateToInterfaceOrientation 来允许应用程序“支持纵向”,但只能在这个视图中旋转到纵向。但现在该方法已被弃用,我不能使用与 shouldAutorotate 相同的技术。
有没有人知道如何在 iOS 6.0 下解决这个问题?
【问题讨论】:
-
顺便说一句,正如我一直在调查的那样,我编译并运行了示例代码“Popovers”,它在 Xcode 4.5 和 iOS 6 模拟器下的所有方向都能完美执行,所以我认为这是错误UIImagePicker 当支持的方向掩码不是全部时。如果我能以某种方式证明这一点,计划提交一个错误 ;-)
-
请参阅我的回答以了解此错误的解释
-
很多人都在使用子类化 UIImagePickerController 的方案,这真的不是办法。请注意 Apple 文档,其中特别指出:
The UIImagePickerController class supports portrait mode only. This class is intended to be used as-is and does not support subclassing请在此处使用 Apple 批准的解决方案查看我的答案:stackoverflow.com/a/12575058/662605 -
Apple 在 iOS 6.1 中修复了此错误,请查看此答案以了解解决方法:stackoverflow.com/a/12575058/662605
-
当我的游戏开始时,当游戏中心登录对话框试图弹出时,这个答案还帮助我修复了方向崩溃。当您已经登录 GC 时,游戏永远不会崩溃。但是当您退出游戏并开始游戏时,它就崩溃了,最佳答案帮助我修复了它。
标签: orientation landscape ios6