2013-03-13 32 views
0

我設置了一張操作表,它可以在拍攝照片時返回3個選項(拍照,選擇圖片和取消),前置攝像頭出現並完美拍攝照片,但問題出在何時我再次拍攝一張照片,它沒有向我展示面對相機的照片,它向我展示了背面照相機。 這是代碼:前置攝像頭沒有反應的操作表

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    CustomImagePickerController *imagePicker = [[CustomImagePickerController alloc] init]; 
    [imagePicker setDelegate:self]; 
    [imagePicker setAllowsEditing:YES]; 

    if(buttonIndex == 0) { 
     [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
     [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront]; 
    } else if(buttonIndex == 1) { 
     [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
    } 

我在代碼更多的東西,但主要的操作設置在那裏。

有什麼問題嗎? 感謝

回答

1

它之所以能夠發生的事情是,當您啓動相機第一次那麼AVCaptureSession在後臺,可能會保留運行後,關閉該控制器。所以下次你展示它的時候,它試圖添加前置攝像頭,但是它很忙,所以它進入下一個可用的(後置攝像頭),自行中斷(從而釋放前一個攝像頭)等等。如果您使用的是ARC,那麼最好使用imagePicker作爲您使用它的類的屬性。

或檢查每次用於照相機設備

if(buttonIndex == 0) 
    { 
     if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
     { 
      imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
      [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront]; 
     } 

    } 
+0

我嘗試你的代碼,它並沒有解決它:(是我使用它。我怎樣才能每次檢查? – Vergmort 2013-03-13 15:37:51

+0

使你的'imagepicker'屬性類 – nsgulliver 2013-03-13 15:40:59

+0

像這樣?@property(nonatomic,retain)UIImagePickerController * imagePicker ; – Vergmort 2013-03-13 15:47:55

0
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    CustomImagePickerController *imagePicker = [[CustomImagePickerController alloc] init]; 
[imagePicker setDelegate:self]; 
[imagePicker setAllowsEditing:YES]; 

    if(buttonIndex == 0) 
    { 
     if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
     { 
      imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
      [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront]; 
     } 
     else 
     { 
      imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
      [imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront]; 
     } 

     [self presentViewController:imagePicker animated:YES completion:nil ]; 

    } 
    else if (buttonIndex==1) 
    { 
     imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
     [self presentViewController:imagePicker animated:YES completion:nil ]; 

    } 
} 
+0

「[自presentViewController:imagePicker動畫:是完成:無];」它顯示了一個警告,告訴我:實例方法未找到(返回類型默認爲id) – Vergmort 2013-03-13 15:29:58

+0

use .... [self presentModalViewController:imagePicker animated:YES]; – iPatel 2013-03-14 04:02:31

相關問題