我正在使用UIImagePickerController编写一个相机应用程序,我想将它作为子视图添加到显示层次结构中:
id delegate = [[UIApplication sharedApplication] delegate];
window = [delegate window];
picker.cameraViewTransform = CGAffineTransformMakeScale(1.3, 1.3);
[window addSubview:picker.view];
[picker viewWillAppear:YES];
[picker viewDidAppear:YES];
但是当我这样做时,代理人不会被调用。
picker是一个UIImagePickerController实例。
如果我将代码更改为将其作为子视图添加到:
[[UIApplication sharedApplication].keyWindow.rootViewController presentModalViewController: controller animated: YES];
然后一切正常。我很确定我已正确设置委托。如果有更多代码我可以发布更有帮助请告诉我。我不知道该发布什么。
我正在为Adobe Flex Native Extension执行此操作,因此我必须做一些额外的工作来获取对窗口的引用。这也是我无法使用modalViewController的原因。 flex应用程序需要将其窗口保持在视图层次结构中的UIImagePickerController下,以便稍后返回。
非常感谢任何帮助 谢谢
答案 0 :(得分:1)
我也将uiimagepicker添加为另一个视图的子视图。我通过确保图像选择器是一个ivar或通过维护一个强大的指针来解决这个问题,以便它被保留。
答案 1 :(得分:0)
是的,UIImagePickerController
仅适用于iPad上的模态或UIPopoverController。
但是您可以使用ALAssetsLibrary库自由编写自己的图像选择器。或者参考一些现有的开源实现,例如ELCImagePickerController
https://github.com/elc/ELCImagePickerController