2012-01-08 21 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或通過維護一個強指針來解決這個問題,以便保留它。

相關問題