我的故事板包含一个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];
}我尝试过任何片段类型、演示样式等,但问题仍然存在。
我在viewDidDisappear中插入了一些日志,注意到这个函数实际上是被调用的,我猜这就是覆盖消失的原因。
请记住:如果我只打开我的Tabbarcontroller的标签,一切都会正常工作!只有当我分割到CameraVC时才会出现问题。
提前感谢!
发布于 2017-05-23 17:40:37
解决方案是选择模态表示样式和"Over current context",因为这样就不会触发viewDidDisappear事件。
https://stackoverflow.com/questions/44110226
复制相似问题