在Storyboard中使用CameraOverlayView

问题描述:

我正在尝试使用CameraOverLayViewUIImagePickerController在XCode中使用Storyboard。
在故事板中,CameraViewController分段为ImagePickerController,其中有CameraOverlayView在Storyboard中使用CameraOverlayView

在我CameraViewController实现文件中,我有这样的代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    UIImagePickerController *controller = [segue destinationViewController]; 
    controller.sourceType = UIImagePickerControllerSourceTypeCamera; 
    controller.delegate = self; 
    //Here's where I need to assign the CameraOverlayView 
    //the view defined in my Storyboard   
} 

编程,我可以创造一个新的CameraOverlayView实例,并将其分配给controller.cameraOverlayView,但有可能使用在故事板作为创建的视图部分ImagePickerController现场,如果是的话,怎么样?

不幸的是,UIImagePickerController没有cameraOverlayView的插座。你最好的选择是创建你自己的插座,引用你想用作叠加层的视图,并将其分配给destinationViewControllerprepareForSegue:

或者,您可以将UIImagePickerController嵌入到容器视图中,只需手动将覆盖视图放在容器视图顶部即可。效果将是相同的,你可以更好地控制行为。

你试过了吗?

[self.storyboard instantiateViewControllerWithIdentifier:@"YourOverlayView"]; 

然后将它分配给UIImagePickerController实例?

我觉得这样你仍然可以享受编辑故事板的好处。