UIPrintInteractionController/UIDocumentInteractionController/UIImagePickerController presentation should be UIViewController-based
| Originator: | matthias.tretter | ||
| Number: | rdar://17957280 | Date Originated: | 08/08/2014 |
| Status: | Open | Resolved: | |
| Product: | iOS SDK | Product Version: | iOS 8 Beta 5 |
| Classification: | Reproducible: | Always |
Summary: The presentation of the above controllers is very limited and they provide different presentation methods for iPhone and iPad. Since iOS 8 userInterfaceIdiom is deprecated and shouldn't be considered, but the presentation of these controllers requires to differentiate between iPhones and iPad. These separate presentation methods make the presentation of those controllers very restricted and don't work well in conjunction with size classes. It should be possible to present these controllers and add them to the view hierarchy like any other UIViewController. Steps to Reproduce: Example for UIPrintInteractionController: Presentation on the iPhone: - (BOOL)presentAnimated:(BOOL)animated completionHandler:(UIPrintInteractionCompletionHandler)completion Presentation on the iPad: - (BOOL)presentFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated completionHandler:(UIPrintInteractionCompletionHandler)completion - (BOOL)presentFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated completionHandler:(UIPrintInteractionCompletionHandler)completion Those methods are clearly modeled after UIPopoverController, but since UIPrintInteractionController is a subclass of NSObject and not of UIViewController we are limited to use them. The provided delegate method - (UIViewController *)printInteractionControllerParentViewController:(UIPrintInteractionController *)printInteractionController makes the presentation cumbersome to use and still unflexible. Expected Results: UIPrintInteractionController, UIDocumentInteractionController, UIImagePickerController (and any other controller I might have missed) are all UIViewController subclasses and can be presented with - (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion or added as a child view controller anywhere in the view controller hierarchy. Actual Results: custom presentation methods for UIPrintInteractionController/UIDocumentInteractionController and limited presentation possibilities of UIImagePickerController (iPad: Popover/Fullscreen, iPhone: Fullscreen) Version: iOS 8 Beta 5 Notes: Configuration: all hardware Attachments:
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!