0

My Storyboardには私のカスタムオーバーレイビューをデザインしたCameraViewControllerが含まれています。 UITabbarControllerの1つのタブとして使用する限り、cameraOverlayViewが表示されます。しかし、他のどのVCからでもこのView Controllerにセグメントすると、オーバーレイビューは数秒間しか表示されず、プレビューイメージだけが表示されます。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

解決策は、モーダルプレゼンテーションスタイルと "Over Current Context"を選択することです。これは、viewDidDisappearイベントがトリガされないためです。

関連する問題