使用Photolibrary将shouldAutorotate设置为false

der*_*ida 7 uipopovercontroller uiinterfaceorientation ios swift shouldautorotate

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

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

但我已经在我的Projekt信息中设置了仅支持横向模式.

所以我添加了以下功能

override func shouldAutorotate() -> Bool {

    return false
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用它?如果我也启用UIInterfaceOrientationPortrait我的应用程序,它工作正常.但我不想支持UIInterfaceOrientationPortrait.

我会像这样叫我的popover:

var popover: UIPopoverController = UIPopoverController(contentViewController: ImagePickerController)

popover.presentPopoverFromBarButtonItem(addImageButton, 
                                        permittedArrowDirections: UIPopoverArrowDirection.Any, 
                                        animated: true)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激

mat*_*att 6

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

  • 在iOS 8中,情况更糟. (3认同)
  • "但我如何强制我的应用程序使用横向模式"通过让属于您的每个视图控制器仅允许横向,并确保横向方向是Info.plist列表中的第一个.但是_this_视图控制器,你遇到麻烦的那个,将以纵向显示. (2认同)