Hi all, I've encountered a bug when UIImagePickerController is presented in a popover on iOS 9, and have been unable to find a workaround / fix.
It is easily reproducible in a brand new Xcode template (repro steps + sample project linked below), but I haven't been able to find much information online. I've been able to find partial fixes that depend on the orientation + multitasking settings of the app, but when the UIImagePickerController is the child of any other view controller (UITabBarController etc.) and the device or sim is in Landscape, it always breaks. I'm attempting to find a reliable fix or workaround, was hoping someone here may have seen this before? Bug: * UIImagePickerController presented in a popover of any kind has a broken 'pop' / back navigation animation * Animated gif: http://i.imgur.com/na2lprb.gif Factors: * The bug itself is impacted by several things: - Orientation of the device/sim (only reproducible in Landscape) - Multitasking availability (only Multitasking-capable devices/sims AFAICT) - Multitasking opt-in (whether 'Requires full screen' is checked) - Whether the UIImagePickerController is a child of any other controller * The bug is NOT impacted by the following: - Whether UIPopoverController or presentViewController: + UIModalPresentationPopover style is used Repro steps (sample project linked below): - Create a new iOS Xcode project ('Single view application' template) - Add a button and wire it up to an action method in ViewController.m - Add code to present a standard UIImagePickerController in a UITabBarController (ex. snippet below) - Run the app on a 9.3 iPad Air 2 Device (or simulator) - Make sure device/sim is rotated to Landscape - Tap button (see 'Result' below) Result: * The popover is presented in the UITabBarController + popover normally, but if the user pushes back within the UIImagePickerController's navigation flow, the animation is broken * Gif: http://i.imgur.com/na2lprb.gif Example code: //**** Bug also reproducible via presentViewController: + UIModalPresentationPopover style - (IBAction)buttonWasTapped:(UIButton *)sender { UIImagePickerController *cameraRollController = [UIImagePickerController new]; cameraRollController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; cameraRollController.allowsEditing = NO; UITabBarController *tabController = [UITabBarController new]; tabController.viewControllers = @[cameraRollController]; UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:tabController]; [popoverController presentPopoverFromRect:sender.bounds inView:sender permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; } Example project: * http://sound-of-silence.com/sos/private/ImagePickerBug.zip So far I've tried just about everything I can think of to fix the problem. As noted above, there are partial "fixes" that work (disabling Multitasking, or limiting orientations), but this is true only when the UIImagePickerController is presented _directly_ in the popover. When the picker is a child of any other view controller (embedded in a tab controller, or added as a child of an arbitrary UIViewController) I've been unable to find a fix. Has anyone seen this before? Any advice/suggestions would be greatly appreciated. Thank you~ _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com