2012-01-08 69 views
2

我写使用的UIImagePickerController相机应用程序,我想这样做,将其添加到显示层次作为一个子视图:UIImagePickerController子视图不调用委托。作品为modalViewController

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本地扩展,所以这就是为什么我必须做一些额外的工作才能获得对该窗口的引用。这也是为什么我不能使用modalViewController。 Flex应用程序需要将其窗口保留在视图层次结构中的UIImagePickerController下,以便稍后返回。

任何帮助是极大的赞赏 谢谢

+0

经过对本网站和网络进一步搜索后,它看起来像没有办法使这项工作。它只能用作modalViewController,为什么?因为苹果这么说。如果任何人有这方面的解决方法,请让我知道,我不打算通过应用程序商店分发,所以苹果限制对我来说不是问题。 – jln646v 2012-01-08 17:54:17

回答

0

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

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

1

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

相关问题