开发者

UIImagePickerController Change Camera Source via delegate?

I would like to be able to change the UIImagePickerControllerCameraDevice via a button. The Button I would like to use is placed in an overlay that is showing over the top of the ImagePicker when it runs.

I have an inkling that this will require me to use a delegate but my knowledge on delegates is very minimal. could someone point me in the right direction?

Here is the code I am using for my UIImagePickerController "GetPhoto" which checks if the device has a camera and enables the correct camera at start depending on which you have available, and if you have none it gives you camera roll.

-(IBAction) getPhoto:(id) sender {
    UIImagePic开发者_运维问答kerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == takePictureButton) {
        overlayViewController *overlay = [[overlayViewController alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])  {
            picker.sourceType = UIImagePickerControllerSourceTypeCamera;

            if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerCameraDeviceFront]) {
                picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;

            }
            else {
                picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
            }

            picker.cameraOverlayView = overlay; 
       }
       else {
            picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            picker.allowsEditing = YES;
        }
    }
    [self presentModalViewController:picker animated:YES];
    [picker release];
}


Since you are using a view controller associated to the overlay, you can define a property for the image picker controller in the overlay view controller, probably assigned rather than retained and define the actions of the button within the overlay view controller to affect the image picker controller instance referenced by that property.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜