Subclassing UIImagePickerController for adding functionality

Sorry, you cannot subclass UIImagePickerController. From the docs:

Important: The UIImagePickerController class supports portrait mode only. This class is intended to be used as-is and does not support subclassing. The view hierarchy for this class is private and must not be modified, with one exception. You can assign a custom view to the cameraOverlayView property and use that view to present additional information or manage the interactions between the camera interface and your code.

However, you can have complete control over the picture taking UI.

  • You can provide a cameraOverlayView to a UIImagePickerController.

  • Avoid UIImagePickerController entirely by using AVFoundation classes to implement picture taking and your own UIViewController subclasses as the controller and views managing the UI and behavior. See https://developer.apple.com/library/mac/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html.