UIImagePickerController Изменить источник камеры с помощью делегата? - PullRequest
1 голос
/ 31 мая 2011

Я хотел бы иметь возможность изменить UIImagePickerControllerCameraDevice с помощью кнопки. Кнопка, которую я хотел бы использовать, помещается в наложение, которое отображается поверх ImagePicker при его запуске.

У меня есть подозрение, что это потребует от меня использования делегата, но мои знания о делегатах очень минимальны. Может ли кто-нибудь указать мне правильное направление?

Вот код, который я использую для своего UIImagePickerController «GetPhoto», который проверяет, есть ли у устройства камера и включает ли правильную камеру при запуске, в зависимости от того, какая у вас есть, и, если у вас ее нет, дает вам поворот камеры.

-(IBAction) getPhoto:(id) sender {
    UIImagePickerController * 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];
}

1 Ответ

2 голосов
/ 31 мая 2011

Поскольку вы используете контроллер представления, связанный с наложением, вы можете определить свойство для контроллера средства выбора изображений в контроллере представления наложения, возможно, assign ed, а не retain ed, и определить действия кнопки внутриконтроллер представления наложения, чтобы воздействовать на экземпляр контроллера средства выбора изображений, на который ссылается это свойство.

...