iosswiftuipopovercontrolleruiinterfaceorientationshouldautorotate

Set shouldAutorotate to false with Photolibrary


If I add a popover with access to my photo gallery from the iPad the system always crash with the following message:

Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and [PUUIAlbumListViewController shouldAutorotate] is returning YES'

But I already set up in my Projekt Information just to support Landscape Mode.

So I added the following function

override func shouldAutorotate() -> Bool {

    return false
}

But I don't know how to use it? If I enable UIInterfaceOrientationPortrait on my app too, it works fine. But I don't want to support UIInterfaceOrientationPortrait.

I'll call my popover like this:

var popover: UIPopoverController = UIPopoverController(contentViewController: ImagePickerController)

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

Any help would be greatly appreciated


Solution

  • You have no choice. And in fact you have solved the problem already. As you have already said, the solution is to enable portrait orientation in your app. You don't have to use it in any of your other view controllers, but you must include it in the app's permissible orientations, because this one view controller that you are trying to show requires it. If the intersection between what the view controller requires and what the app permits is null, the app will crash (as you have seen).