最新的“Yelp”应用程序提供“添加商业照片”功能。拍照后,预览屏幕照常显示。但是,点击“使用”按钮会显示与预览屏幕相同的预览屏幕,其中包含按钮和文本字段以输入字幕。我已经读过,“仅”在预览屏幕上显示叠加的方式如下:
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
{
if (!viewController)
return;
UIView* controllerViewHolder = viewController.view;
UIView* controllerCameraView = [[controllerViewHolder subviews] objectAtIndex:0];
UIView* controllerPreview = [[controllerCameraView subviews] objectAtIndex:0];
[controllerCameraView insertSubview:self.overlayView aboveSubview:controllerPreview];
}
我还没有让这个工作:)但是我现在正在讨论使用什么方法来显示预览屏幕两次,即。一次正常然后再叠加?
我还不知道UIImagePickerController的来龙去脉,我想知道是否有可能在预览上方插入叠加层并在预览显示后重新显示预览(不确定是否可能)或创建并显示一个全新的视图(应用了叠加的预览副本)? (不知道我会怎么做)。
提前感谢您的意见..
答案 0 :(得分:3)
UIImagePickerController是一个导航控制器。这意味着你可以在图像选择器控制的视图控制器堆栈上打开和关闭。当你得到imagePickerController:didFinishPickingMediaWithInfo:notification时,只需将另一个视图推送到图像选择器堆栈上就可以了。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSURL *imageURL = [info objectForKey:UIImagePickerControllerMediaURL];
MyCustomPreviewController *customPreview = [[MyCustomPreviewController alloc] initWithImageURL:imageURL];
[picker pushViewController:customPreview animated:YES];
}