另一个UIView的
我一直在工作的UIImagePickerController广泛漂亮过去几个月,特别是在OS3.1和更新的新功能叠加在顶部的摄像机视图的视图中显示的UIImagePickerController。这工作得很好。另一个UIView的
不过,我目前工作的一个项目,我希望能够在现有视图中显示的UIImagePickerController的摄像机视图。基本上,与我目前所做的完全相反。
一个例子是与导航组件(认为具有梯度的顶部和底部水平条),并且在轻击这些杆中的一个的按钮视图控制器,然后内容区域显示相机视图。快门动画应该会出现,顶部和底部的导航栏始终保持在顶部。
我已经成功加入的UIImagePickerController到窗口视图,以及模态呈现,但还没有任何运气将其添加为一个子视图。
例如:
[window addSubview:camera.view];
[self presentModalViewController:camera animated:YES];
我不认为API提供给UIImagePickerController
的实际视图直接访问。该类实际上是UINavigationController
的一个子类,所以我不认为它本身具有实际的视图,而是管理其子控制器及其视图的调用。
当你调用UIImagePickerController
模态,其不加它控制的子视图窗口(或任何其他视图)的意见。这是一种模态观点。它将视图呈现在视图层次的“侧面”。
即使你能破解这一起,我认为苹果会拒绝它不作为API的一部分,对违反HIG。
UIImagePickerController是具有视图属性的UIViewController的子类,所以应该很好地使用该视图属性作为另一个UIView的子视图。 – jjxtra 2013-01-08 19:51:49
所有你需要做的就是调用viewWillAppear和viewDidAppear。
下面是一个例子,其中_pickerController是的UIImagePickerController的一个实例:
[self.view addSubview:_pickerController.view];
[_pickerController viewWillAppear:YES];
[_pickerController viewDidAppear:YES];
这使我可以将相机显示为任何视图的子视图(镜头打开并且一切正常)。然而,时钟,电池指示器等顶部的酒吧消失并变成白色条。我猜UIImagePickerController并不打算在显示顶部栏时使用。 – Jano 2011-03-04 12:10:30
不确定。我总是删除状态栏。 – jj0b 2011-04-06 15:39:34
Thanks.I刚添加[self.pickerForProfilePicture.view removeFromSuperview]; – YaBoiSandeep 2014-02-17 09:36:38
从DOCO:“重要:UIImagePickerController类仅支持肖像模式此类旨在被原样使用,并没有。支持子类,这个类的视图层次是私有的,不能修改“这很简单。 – Fattie 2014-02-26 15:07:41
这只是** presentViewController **,不要使用模态。所以,[self presentViewController:ipc animated:YES completion:NULL]; – Fattie 2014-02-26 15:09:13