1. Setting the image picker’s sourceType:
The sourceType constant that tells the image picker where to get images. It has three possible values:
UIImagePickerControllerSourceTYpeCamera
The user will take a new picture. This source type will not work on a device that does not have a camera. So, before using this type, you have to check for a camera by sending the message isSourceTypeAvailable: to the UIImagePickerController class.
UIImagePickerControllerSourceTypePhotoLibrary
The user will be prompted to select an album and then a photo from that album.
UIImagePickerControllerSourceTypeSavedPhotosAlbum
The user picks from the most recently taken photos.
2. To present a view controller modally, you send presentViewController:animated:completion: to the UIViewController whose view is on the screen.
3. Adding the ability to record video or choose a video from the disk is as simple as adding the constant string kUTTypeMovie to the mediaTypes array. However, not all devices support video through the UIImagePickerController. Just like the class method isSourceTypeAvailable: allows you to determine if the device has a camera, the availableMediaTypesForSourceType: method checks to see if that camera can capture video. To set up an image picker controller that can record video or take still images, you would write the following code:
UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
NSArray *availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
ipc.mediaTypes = availableTypes;
ipc.sourceType = UIImagePickerControllerSourceTypeCamera
ipc.delegate = self;