UIImagePickerController子视图不调用委托。作为modalViewController工作

时间:2012-01-08 07:37:36

标签: iphone ios uiimagepickercontroller

我正在使用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下,以便稍后返回。

非常感谢任何帮助 谢谢

2 个答案:

答案 0 :(得分:1)

我也将uiimagepicker添加为另一个视图的子视图。我通过确保图像选择器是一个ivar或通过维护一个强大的指针来解决这个问题,以便它被保留。

答案 1 :(得分:0)

是的,UIImagePickerController仅适用于iPad上的模态或UIPopoverController。

但是您可以使用ALAssetsLibrary库自由编写自己的图像选择器。或者参考一些现有的开源实现,例如ELCImagePickerController https://github.com/elc/ELCImagePickerController