【问题标题】:UIImagePickerController takePicture is not calling any delegate methodUIImagePickerController takePicture 没有调用任何委托方法
【发布时间】:2012-01-06 07:27:45
【问题描述】:

我正在创建一个示例应用程序,它允许使用自定义按钮捕获图像和录制视频。 我创建了一个 UIImagePicker 控制器实例并分配委托,一切都完成了,但 takePicture,没有调用委托方法。

我也很少提及 UIImagePickerController takePicture not respondingUIImagepickerController [takepicture] modal view disappears no delegate callback 的帖子,但没有得到我的解决方案。

这是我的代码。如果我遗漏了什么,请告诉我:

- (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 没有被调用。

请帮我解决这个问题。

谢谢大家

【问题讨论】:

    标签: iphone uiimagepickercontroller image-capture


    【解决方案1】:

    只需添加这一行

        picker.showsCameraControls = NO;
    

    【讨论】:

      【解决方案2】:

      您需要确保在标头中实现UIImagePickerControllerDelegate 协议。

      .h

      @interface MyViewController <UIImagePickerControllerDelegate>
      {
          // 
      }
      
      @end
      

      【讨论】:

      • 你不是说 UIImagePickerControllerDelegate
      【解决方案3】:

      您最好检查您的 UIImagePickerController.delegate 是否仍然是您的控制器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-26
        相关资源
        最近更新 更多