0

내 스토리 보드에 사용자 정의 오버레이보기를 디자인 한 CameraViewController가 포함되어 있습니다. UITabbarController의 한 탭으로 사용하는 한 cameraOverlayView가 표시됩니다. 그러나 다른 VC에서이 뷰 컨트롤러와 연결하면 오버레이 뷰는 1 초의 순간 만 볼 수 있으며 미리보기 이미지 만 볼 수 있습니다.UIImagePickerController의 cameraOverlayView가 즉시 사라집니다.

@implementation CameraViewController 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    UIImagePickerController *picker = [UIImagePickerController new]; 
    if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) return; 
    picker.delegate = self; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    picker.showsCameraControls = NO; 
    picker.allowsEditing = NO; 
    picker.cameraOverlayView = self.view; 

    [self presentViewController:picker animated:YES completion:nil]; 
} 

나는 모든 종류의 스타일, 프리젠 테이션 스타일 등을 시도했지만 문제는 그대로 남습니다.

일부 로그를 viewDidDisappear에 삽입했는데 실제로이 기능이 호출되었다는 사실을 알게되었는데 그것이 오버레이가 사라지는 이유입니다.

주의 사항 : Tabbarcontroller의 탭을 열면 모든 것이 잘 작동합니다. 이 문제는 CameraVC에 연결하는 경우에만 발생합니다.

미리 감사드립니다.

답변

0

해결 방법은 모달 프레젠테이션 스타일과 "현재 컨텍스트"를 선택하는 것입니다. 그 이유는 viewDidDisappear 이벤트가 트리거되지 않기 때문입니다.

관련 문제