【问题标题】:Custom camera with UIImagePickerController and AVFoundation带有 UIImagePickerController 和 AVFoundation 的自定义相机
【发布时间】:2013-11-19 08:25:49
【问题描述】:

我的应用上有一个自定义摄像头。我在相机视图上添加了一个按钮,以便用户可以根据需要从相册中选择图像。一旦他们选择了一张图片,他们就会将它裁剪成一个正方形,然后到达编辑屏幕。我遇到的问题是一旦用户裁剪图像并点击“完成”,它就会回到相机而不是进入编辑屏幕。 这是我的代码:

- (void)viewDidLoad{
  [super viewDidLoad];
  if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
    //isAlbum = NO;
    NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
    NSData *data = [def objectForKey:@"imageData"];
    if([NSStringFromClass([data class]) isEqualToString:@"NSData"]){
        [self performSeague];
    }
//    [self.view sendSubviewToBack:self.cameraView];
    // Do any additional setup after loading the view, typically from a nib.
    [self setupAVCapture];
    [self setLatestPicture];
    [_AlbumView.layer setBorderColor: [[UIColor whiteColor] CGColor]];
    [_AlbumView.layer setBorderWidth:2.0];
    [overlayView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"cameraOverlay.png"]]];
    [self.view bringSubviewToFront:overlayView];
  }
  else{
      [self performSeague];
  }

[self performSeague] 转到 UIImagePickerController(不同的控制器)。这是它的委托代码

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
  UIImage *image = [info valueForKey:UIImagePickerControllerEditedImage];
  NSData *data = [[NSData alloc]init];
  data = UIImagePNGRepresentation(image);
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  [defaults setObject:data forKey:@"imageData"];

  [self performSegueWithIdentifier:@"pictureSelectedSeague" sender:self];


  }
 -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
     [self dismissViewControllerAnimated:NO completion:^{
     [self performSegueWithIdentifier:@"cancelSeage" sender:self];
   }];

  }

在这里,如果用户取消,我继续回到相机并且它可以工作,但是当用户完成选择编辑后的图像时,而不是遵循 [self performSegueWithIdentifier:@"pictureSelectedSeague" sender:self]; 这行代码,它会关闭选择器并返回相机查看。

【问题讨论】:

    标签: ios objective-c uiimagepickercontroller avfoundation


    【解决方案1】:

    使用以下代码在 didFinishPickingMediaWithInfo 方法中关闭 imagepicker 模型视图[picker dismissModalViewControllerAnimated:NO];

    【讨论】:

    • 同样的结果。 dismissModalViewControllerAnimated: 已被弃用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 2013-07-16
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多