Ios 使用Photolibrary将shouldAutorotate设置为false

Ios 使用Photolibrary将shouldAutorotate设置为false,ios,swift,uipopovercontroller,uiinterfaceorientation,shouldautorotate,Ios,Swift,Uipopovercontroller,Uiinterfaceorientation,Shouldautorotate,如果我从iPad添加一个可以访问我的照片库的popover,系统总是会崩溃,并显示以下消息: 由于未捕获的异常“UIApplicationInvalidInterfaceOrientation”而终止应用程序,原因是:“受支持的方向与应用程序没有共同的方向,[PUUIAlbumListViewController shouldAutorotate]返回YES” 但我已经在我的项目信息中设置了只支持横向模式 因此,我添加了以下函数 override func shouldAutorotate()

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

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

但我已经在我的项目信息中设置了只支持横向模式

因此,我添加了以下函数

override func shouldAutorotate() -> Bool {

    return false
}
但我不知道如何使用它?如果我在我的应用程序上也启用了
UIInterfaceOrientationGrait
,它可以正常工作。但我不想支持
UIInterfaceOrientationPortrait

我会这样称呼我的府绸:

var popover: UIPopoverController = UIPopoverController(contentViewController: ImagePickerController)

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

任何帮助都将不胜感激

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

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

因此,处理这个问题的另一种方法是寻找一种替代
UIImagePickerController
的方法,它也可以做同样的事情。下面是一个很好的方法。虽然代码几年没有更新过,但它是ARC兼容的


它非常棒,可以帮助你避免很多疯狂行为,特别是当你不想(或不能)在你的应用程序中支持肖像模式时。

你的意思是我只是启用了它,但我如何才能为我的应用程序强制使用横向模式?这对于iOS8/Swift来说仍然是最新的吗?“但是我如何才能为我的应用程序强制使用横向模式?”通过让您所属的每个视图控制器都只允许横向,并确保Info.plist列表中的横向方向是第一位。但您遇到问题的视图控制器将以纵向显示。感谢您的帮助!我的书介绍了iOS应用程序定向机制的工作原理: