我的故事板包含一个CameraViewController,我在其中设计了自定义叠加视图。 只要我将它用作我的UITabbarController的一个选项卡,就可以看到cameraOverlayView。但是,如果我从任何其他VC转移到此视图控制器,叠加视图仅在几分之一秒内可见,则只有预览图像可见。
@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];
}
我尝试了任何segue类型,演示样式等,问题保持不变。
我在viewDidDisappear
中插入了一些日志,并注意到这个函数实际上被调用了,我想这就是叠加层消失的原因。
请记住:如果我只打开Tabbarcontroller的标签,一切都运行正常!只有当我转到CameraVC时才会出现问题。
提前致谢!
答案 0 :(得分:0)
解决方案是选择模态演示样式和"过度上下文",因为那时不会触发viewDidDisappear事件。