Search This Blog

Thursday, November 5, 2009

Camera and ActionSheet API of iPhone







click a button raise an actionsheet

- (IBAction)addPhoto:(id)sender {
UIActionSheet *cameraSheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"TakePicture",@"ChooseFromLibrary",nil];
cameraSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[cameraSheet showInView:self.view];
[cameraSheet release];
}

Delegation methods of ActionSheet

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.allowsEditing = YES;
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
} else {
[actionSheet dismissWithClickedButtonIndex:buttonIndex animated:YES];
}
} else if (buttonIndex == 1) {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.allowsEditing = YES;

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]){
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
}

else if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum]){
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
}

else{
[actionSheet dismissWithClickedButtonIndex:buttonIndex animated: YES];
}
}

}


Delegate methods of UIImagePickerControllerDelegate

#pragma mark -
#pragma mark UIImagePickerControllerDelegate Methods

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[self dismissModalViewControllerAnimated:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo {
[self dismissModalViewControllerAnimated:YES];
}

No comments:

Post a Comment