简体   繁体   中英

cameraOverlayView of UIImagePickerController disappears immediately

My Storyboard contains a CameraViewController in which I designed my custom overlay view. As long as I use it as one tab of my UITabbarController, the cameraOverlayView is visible. But if I segue to this view controller from any other VC, the overlay view is visible only for a fraction of a second, then only the preview image is visible.

@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];
}

I have tried any segue types, presentation styles, etc., the problem stays the same.

I inserted some logs in viewDidDisappear , and noticed that this function in fact is called, I guess that's the reason why the overlay disappears.

Keep in mind: If I just open the tab of my Tabbarcontroller, everything just works fine! The problem only occurs if I segue to the CameraVC.

Thanks in advance!

解决方案是选择模式表示样式和“在当前上下文中”,因为这样不会触发viewDidDisappear事件。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM