UiImagePickerController - 不止一张照片

时间:2013-09-25 14:47:41

标签: ios uiimagepickercontroller

Iphone app,IOS 5及以上。

在SO上也存在类似的问题,但我没有遇到过这种情况,所以我会问。我正在编辑一个现有的应用程序,允许您拍摄一张照片,并将其调整并发送到网络服务。

我需要添加拍摄3张照片的功能,调整每张照片并发送到同一服务。我认为这只是重复已经在应用程序中的内容,但它使用UIImagePickerController,显然每次使用只允许一张照片。

所以它的工作方式是有一个“拍照”按钮调用下面的方法。一旦拍完照片,会出现另一个按钮,上面写着“拍摄另一张照片”(我添加了这个按钮),我让它调用相同的方法,但它只是复制了上一张照片,这是真正的预期。我应该如何最好地改变它以容纳3张照片?

这是我正在打电话的拍照方式。

- (IBAction)takePhoto:(id)sender
{
    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController.delegate = self;
    [self presentViewController:imagePickerController animated:YES completion:NULL];
}

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

最终想出了如何做到这一点。我通过IB为调用方法的按钮添加了一个标签。

然后在takephoto方法中,我根据点击按钮的标签为imagePickerController分配了一个标签。像这样:

- (IBAction)takePhoto:(id)sender
{
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

   if([sender tag] == 2)
   {
       imagePickerController.view.tag = 2;
   }
   //And so on...

   imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
   imagePickerController.delegate = self;
   [self presentViewController:imagePickerController animated:YES completion:NULL];   
}

然后在ImagePickerController中使用didFinishedPickingMediaWithInfo方法:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

  if(picker.view.tag == 2)
  {
     //Do stuff here
  }
}

所以,我可能不得不为三张可能的照片中的每一张创建三个不同的按钮,我相信它有更好的方法,但它应该有效。