Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 500
derdida Avatar asked Aug 01 '14 23:08

derdida


2 Answers

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).

like image 140
matt Avatar answered Nov 02 '22 09:11

matt


At a slightly higher level, the problem is that your app only supports landscape and yet the UIImagePickerController requires portrait to be supported in your app (but none of the view controllers, which makes no sense, but anyway...)

So another way to handle this problem is to look for an alternative to UIImagePickerController that does the same thing. Here's one that works well. While the code hasn't been updated in a few years, it is ARC compatible.

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

It's pretty fantastic, and helps you avoid lots of madness, especially if you don't want to (or cannot) support portrait modes in your app.

like image 35
Dan Rosenstark Avatar answered Nov 02 '22 08:11

Dan Rosenstark