6

UIImagePickerView를 사용하는 응용 프로그램을 사용하여 사용자가 카메라로 사진을 찍거나 UIImagePickerView를 사용하여 카메라 롤에서 사진을 선택할 수 있습니다.카메라 모드의 UIImagePickerView는 iPad의 dismissViewController에서 모두 검은 색으로 표시됩니다.

그림을 얻은 후 [picker presentViewController:myViewController animated:YES completion:nil]을 사용하여 피커 상단에 다른 대화 상자를 표시합니다. 나는 그것이 카메라 롤 또는 다른 사진을 촬영합니다 CameraFeed을 보여주는 하나에 돌아갑니다 [myviewController.presentingViewController dismissViewControllerAnimated:YES completion:nil]를 사용하여 myViewController을 기각 나는 (내 아이 패드) 아이폰 애플 리케이션으로 내 응용 프로그램을 실행하는 경우

.

그러나 iPad에서는 사진을 선택하면 작동하지만 카메라 피드를 사용하여 사진을 찍으면 바로 검은 색 화면이 나타납니다.

왜 그런가?

+0

언제 추가보기 컨트롤러를 표시합니까? 사용자가 '사용'버튼을 누른 후? 내가 그걸 시도하고 추가 컨트롤러를 없애 버린 후 imagePicker는 선택한 그림 (예, ipad)을 보여 주지만 모든 단추가 비활성화되어 있으므로 해당 단계에서 이미지 선택 도구로 다른 작업을 수행 할 수는 없습니다. UIPickerDelegate 메소드의 코드 샘플을 기꺼이 제공 하시겠습니까? – bazik

+0

사용자가 Use를 누르면, 대리자에 대해 - (void) imagePickerController : (UIImagePickerController *) 피커 didFinishPickingMediaWithInfo : (NSDictionary *) info' 호출이 발생합니다. 이 메소드에서 나는'info'에서 신경 써야 할 이미지를 얻고 그것을 myviewcontroller에 전달합니다. 그런 다음, [myViewController.presentingViewController dismissViewControllerAnimated : YES completion : nil]을 호출하여 myViewController를 닫을 때 단지 검은 색 화면을 보여줄 뿐이며, 다른 사진 찍어. – Liron

답변

6

iPad에서 카메라 피드와 다른 소스를 사용하는 경우 UIImagePickerController를 팝업에 표시하고 원하는만큼 사용할 수 있습니다. 하지만 소스 UIImagePickerControllerSourceTypeCamera 피커 창을 선택하기로 결정 때 전체 화면을 제시하면 이가지 경우가 : 당신은 사용자 정의 컨트롤을 사용하는 경우

  1. 을 당신이 원하는대로 당신이 많은 사진을 촬영할 수 있습니다 (= NO showsCameraControls) 같은 컨트롤러로.
  2. 기본 컨트롤 (showsCameraControls = YES)을 사용하는 경우 사진을 찍은 후에는 을 다시 사용할 수 없기 때문에 컨트롤러를 무시해야하며 이는 사용자의 경우라고 생각합니다. 다음 사진을 찍은 후 컨트롤러를 다시 가져 오려고 시도하지만 더 이상 사용할 수 없게됩니다. 그러면 더 이상 검은 색 화면이 표시됩니다 imagePickerController:didFinishPickingMediaWithInfo:에 대한

애플 문서 :

당신이 NO로 이미지 피커의 showsCameraControls의 속성을 설정하면

및 당신은 이미지 피커 인터페이스를 해고하기 전에 여러 사진 걸릴 수 있습니다, 사용자 정의 컨트롤을 제공합니다. 그러나 속성을 YES로 설정하면 사용자가 사진 한 장을 가져 오거나 작업을 취소 한 후에 대리인이 이미지 선택기 인터페이스 을 닫아야합니다.

이 경우 다른 사진을 찍으려면 기본 컨트롤러로 돌아가서 UIImagePickerController 인스턴스를 하나 더 만들어야합니다.

도움이되기를 바랍니다.

편집 : IMO가보기 컨트롤러 스택을 재구성하는 가장 쉬운 방법은 애니메이션없이 사진을 찍은 다음 그 다음 컨트롤러에 애니메이션을 표시 한 후 선택기를 닫는 것입니다. 사용자에게 "깜박임"없이 선택기 컨트롤러 바로 다음에 다음 컨트롤러가 표시된다는 느낌을줍니다.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [self dismissViewControllerAnimated:NO completion:^{ 
     [self presentViewController:<newController> animated:YES completion:nil]; 
    }]; 
} 
1

정상적으로 UIImagePicker를 닫을 수 있습니다. Previxer View Controller가 viewWillDesapear를 활성화하면 이전 viewController에 "말"합니다. 그러면 viewWillAppear 때 UIImagePicker가 다시 표시됩니다. 나는 그것이 효과가 있다고 생각한다.

+0

그건 기본적으로 현재하고 있습니다. 나는 그것을 viewDidAppear에서 보여주고있다. (나는 viewWillAppear에서 그것을 보여줄 수 있다고 생각하지 않는다). 문제는 카메라 뷰가 다시 표시되기 전에 이전 뷰 컨트롤러가 깜박이는 것을 보는 것입니다. – Liron

1

앱에서 비슷한 문제가있었습니다. 필자는 iPad 용 모달이 아닌 팝 오버 컨트롤러로 카메라의 이미지 선택기를 발표했습니다. 이것이 귀하의 앱에서 효과가 있을지 모르지만 다른 접근 방법입니다. 나는 이런 방식으로 아무런 문제가 없었고 훨씬 더 좋아했습니다.

+0

그래, 아마도 내가 그렇게 할거야. 그러면 적어도 사용자가 카메라 롤에서 사진을 찍는 것과 새로운 사진을 찍는 것 사이에 약간의 대칭이 생깁니다. 내가 진정으로 원했던 흐름이 아니라 어쩌면 그렇게해야 할 것입니다. – Liron

관련 문제