2013-09-25 206 views
0

Iphone應用程序,iOS 5及更高版本。UiImagePickerController - 多張照片

對於這個問題有類似的問題,但我沒有遇到這種確切的情況,所以我會問。我正在編輯一個現有的應用程序,允許您拍攝調整大小併發送到Web服務的照片。

我需要添加拍攝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]; 
} 

回答

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 
    } 
} 

所以,我很有可能要爲每個三種可能的照片創建三個不同的按鈕,我敢肯定有一個比這更好的方式,但它應該工作。