在过去的几个月里,我一直在使用UIImagePickerController进行相当广泛的工作,特别是在OS3.1中的新功能以及更新的覆盖视图在视图顶部。这工作得很好。
但是,我目前正在开发一个项目,我希望能够在现有视图中显示UIImagePickerController的摄像机视图。基本上,与我目前正在做的完全相反。
一个例子是带有导航组件的视图控制器(想想带有渐变的顶部和底部水平条),点击其中一个条上的按钮,然后内容区域显示摄像机视图。快门动画应该会亮起,顶部和底部导航栏将始终保持在顶部。
我已成功将UIImagePickerController添加到窗口视图中,并以模态方式呈现它,但是没有任何运气将其添加为子视图。
例如:
[window addSubview:camera.view];
[self presentModalViewController:camera animated:YES];
答案 0 :(得分:7)
您需要做的就是调用viewWillAppear和viewDidAppear。
以下是_pickerController是UIImagePickerController实例的示例:
[self.view addSubview:_pickerController.view];
[_pickerController viewWillAppear:YES];
[_pickerController viewDidAppear:YES];
答案 1 :(得分:2)
在将视图添加到视图后,在图像选择器控制器上调用viewWillAppear:YES。跳过模态视图控制器业务。
答案 2 :(得分:0)
我认为API不能直接访问UIImagePickerController
的实际视图。该类实际上是UINavigationController
的子类,因此我认为它本身并不具有实际视图,而是管理其子控制器及其视图的调用。
当您以模态方式调用UIImagePickerController
时,它不会将其控制的视图作为子视图添加到窗口(或任何其他视图)。这就是模态视图的含义。它将视图呈现给视图层次结构的“侧面”。
即使你可以一起破解这个,我认为Apple会拒绝它,因为它不属于API并且违反了HIG。