Я создаю пример приложения, которое позволяет использовать для захвата изображения и записи видео с помощью пользовательских кнопок.Я создал экземпляр контроллера UIImagePicker и назначил делегата, и все сделано, но takePicture
, не вызывает метод делегата.
Я ссылаюсь на несколько сообщений тоже UIImagePickerController takePicture не отвечает и Модальное представление UIImagepickerController [takepicture] исчезает без обратного вызова делегата , но мое решение не получается.
Вот мой код.Пожалуйста, дайте мне знать, если я что-то упустил:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.navigationBar.hidden = YES;
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[imagePicker setAllowsEditing:NO];
[imagePicker setMediaTypes:[NSArray arrayWithObject:@"public.movie"]];
[imagePicker setCameraCaptureMode:UIImagePickerControllerCameraCaptureModeVideo];
[imagePicker setShowsCameraControls:NO];
[imagePicker setToolbarHidden:YES];
[imagePicker setDelegate:self];
UIView *overlayView = [[UIView alloc] initWithFrame:[[imagePicker view]frame]];
[overlayView setBackgroundColor:[UIColor clearColor]];
UIButton *btnCapture = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnCapture setFrame:CGRectMake(0, overlayView.frame.origin.y + overlayView.frame.size.height - 35, 30, 30)];
[btnCapture setTitle:@"c" forState:UIControlStateNormal];
[btnCapture addTarget:self action:@selector(captureFrame:) forControlEvents:UIControlEventTouchUpInside];
UIButton *btnStopVideo = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnStopVideo setFrame:CGRectMake(40, overlayView.frame.origin.y + overlayView.frame.size.height - 35, 30, 30)];
[btnStopVideo setTitle:@"s" forState:UIControlStateNormal];
[btnStopVideo addTarget:self action:@selector(btnStopTapped:) forControlEvents:UIControlEventTouchUpInside];
[overlayView addSubview:btnStopVideo];
[overlayView addSubview:btnCapture];
[imagePicker setCameraOverlayView:overlayView];
[self presentModalViewController:imagePicker animated:NO];
}
- (void)captureFrame:(id)sender {
[imagePicker takePicture];
}
Но метод делегата: - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
не вызывается.
Пожалуйста, помогите мне решить эту проблему.
Спасибо всем