3

在过去的几个月里,我一直在使用 UIImagePickerController 进行广泛的工作,特别是使用 OS3.1 和更新的在相机视图顶部覆盖视图的新功能。这工作得很好。

但是,我目前正在开发一个项目,我希望能够在现有视图中显示 UIImagePickerController 的相机视图。本质上,与我目前所做的完全相反。

一个示例是带有导航组件的视图控制器(想想带有渐变的顶部和底部水平条),当点击这些条之一上的按钮时,内容区域会显示相机视图。快门动画应该向上,顶部和底部导航栏将始终保持在顶部。

我已经成功地将 UIImagePickerController 添加到窗口视图,并以模态方式呈现它,但没有任何运气将它添加为子视图。

前任:

[window addSubview:camera.view];
[self presentModalViewController:camera animated:YES];
4

3 回答 3

7

您需要做的就是调用 viewWillAppear 和 viewDidAppear。

这是一个示例,其中 _pickerController 是 UIImagePickerController 的一个实例:

[self.view addSubview:_pickerController.view];
[_pickerController viewWillAppear:YES];
[_pickerController viewDidAppear:YES];
于 2010-06-02T20:48:31.843 回答
2

Call viewWillAppear:YES on the image picker controller after adding its view to your view. Skip the modal view controller business.

于 2009-11-19T01:03:47.020 回答
0

我不认为 API 提供对实际视图的直接访问UIImagePickerController。该类实际上是一个子类,UINavigationController因此我认为它本身没有实际的视图,而是管理其子控制器及其视图的调用。

当您以UIImagePickerController模态方式调用时,它不会将其控制的视图作为子视图添加到窗口(或任何其他视图)。这就是模态视图的含义。它将视图呈现到视图层次结构的“一侧”。

即使你可以一起破解它,我认为 Apple 会拒绝它,因为它不是 API 的一部分并且违反了 HIG。

于 2009-11-18T22:01:17.783 回答