UIImagePickerController is a view controller responsible for allowing the developer to access the user's photo library, camera roll, saved photos, and the camera itself. It helps detect if a camera is present and if the camera supports video capture or still capture only. Additionally, the controller allows basic cropping features before sending an image out of the controller. Its primary use is to get photos and insert them into a UIImageView.
Images are picked by the user and stored to a NSDictionary object, where the developer can retrieve it. If allowEditing: is enabled, then the developer can pick which image to take from the NSDictionary.
Presentation of the controller
On an iPhone or iPod touch, the UIImagePickerController should be set up to present from a modal view controller, and its delegate should be itself. You need to present the material on a modal view controller, so that [picker presentModalViewControllerAnimated:YES]; can present it.
On an iPad, the UIImagePickerController MUST be presented in a UIPopoverController. The best way to do this is by using [[UIPopoverController alloc] initWithContentViewController: imagePicker] where UIImagePickerController is defined as imagePicker.
Do not forget to include the didCancel method, and make sure you tell it to dismiss the controller after finishing or picking an image.