7

如果我添加一个可以从系统访问我的照片库的弹出框,iPad总是会崩溃并显示以下消息:

由于未捕获的异常“UIApplicationInvalidInterfaceOrientation”而终止应用程序,原因:“支持的方向与应用程序没有共同的方向,并且 [PUUIAlbumListViewController shouldAutorotate] 返回 YES”

但是我已经在我的 Projekt Information 中进行了设置,只是为了支持横向模式。

所以我添加了以下功能

override func shouldAutorotate() -> Bool {

    return false
}

但是不知道怎么用?如果我UIInterfaceOrientationPortrait也在我的应用程序上启用,它工作正常。但是我不想支持UIInterfaceOrientationPortrait

我会这样称呼我的弹出框:

var popover: UIPopoverController = UIPopoverController(contentViewController: ImagePickerController)

popover.presentPopoverFromBarButtonItem(addImageButton, 
                                        permittedArrowDirections: UIPopoverArrowDirection.Any, 
                                        animated: true)

任何帮助将不胜感激

4

2 回答 2

6

你没有选择。事实上你已经解决了这个问题。正如您已经说过的,解决方案是在您的应用程序中启用纵向。您不必在任何其他视图控制器中使用它,但您必须将它包含在应用程序允许的方向中,因为您尝试显示的这个视图控制器需要它。如果视图控制器要求和应用程序允许的交集为空,应用程序将崩溃(如您所见)。

于 2014-08-01T23:57:50.483 回答
2

在稍高的水平上,问题是您的应用程序仅支持横向,但您的应用程序需要支持UIImagePickerController纵向(但没有任何视图控制器,这没有任何意义,但无论如何......)

所以解决这个问题的另一种方法是寻找一种替代方法UIImagePickerController来做同样的事情。这是一个运作良好的。虽然代码在几年内没有更新,但它与 ARC 兼容。

https://github.com/B-Sides/ELCImagePickerController

这非常棒,可以帮助你避免很多疯狂,特别是如果你不想(或不能)在你的应用程序中支持纵向模式。

于 2016-01-04T19:39:59.697 回答