如果我从iPad
添加一个可以访问我的照片库的popover,系统将始终崩溃,并显示以下消息:
由于未捕获的异常'UIApplicationInvalidInterfaceOrientation'而终止应用程序,原因:'支持的方向与应用程序没有共同的方向,[PUUIAlbumListViewController shouldAutorotate]返回YES'
但我已在我的Projekt信息中设置了仅支持横向模式。
所以我添加了以下功能
override func shouldAutorotate() -> Bool {
return false
}
但我不知道如何使用它?如果我也在我的应用上启用UIInterfaceOrientationPortrait
,则可以正常使用。但我不想支持UIInterfaceOrientationPortrait
。
我会像这样叫我的popover:
var popover: UIPopoverController = UIPopoverController(contentViewController: ImagePickerController)
popover.presentPopoverFromBarButtonItem(addImageButton,
permittedArrowDirections: UIPopoverArrowDirection.Any,
animated: true)
非常感谢任何帮助
答案 0 :(得分:6)
你别无选择。事实上,你已经解决了这个问题。正如您已经说过的,解决方案是在您的应用中启用纵向方向。您不必在任何其他视图控制器中使用它,但必须将其包含在应用程序允许的方向中,因为您尝试显示的这个视图控制器需要它。如果视图控制器需要的内容与应用程序允许的内容之间的交集为空,则应用程序将崩溃(如您所见)。
答案 1 :(得分:2)
稍微高一点,问题是你的应用只支持横向,但UIImagePickerController
需要在你的应用中支持肖像(但没有一个视图控制器,这没有任何意义,但无论如何。 ..)
因此,处理此问题的另一种方法是寻找可以执行相同操作的UIImagePickerController
的替代方法。这是一个运作良好的。虽然代码在几年内没有更新,但它与ARC兼容。
https://github.com/B-Sides/ELCImagePickerController
它非常精彩,可以帮助您避免许多疯狂,特别是如果您不想(或不能)支持应用中的肖像模式。