2011-11-27 50 views
3

我有一個應用程序,其中我提供了一個UIImagePickerController與源類型UIImagePickerControllerSourceTypeCamera。一切工作正常,除非我離開應用程序並回來(多任務處理已啓用,所以應用程序返回到它離開的地方),我再次提出UIImagePickerController。它出現在屏幕上,但相機從不顯示,相機顯示的動畫從未發生過,下面是屏幕截圖:screenshotUIImagePickerController出現,但相機不啓動iOS 5

如果我再次按取消並提示UIImagePickerController,相機將顯示正常。所以這個問題發生的唯一時間是我回到應用程序後第一次提出UIImagePickerController。任何人都知道這是爲什麼發生?我編碼的iOS 5

我呈現UIImagePickerController有:

[self presentViewController:capturePhotoPicker animated:YES completion:nil]; 

與貶:

[self dismissViewControllerAnimated:YES completion:nil]; 

我每次我提出它的時候使用相同的UIImagePickerController對象

+0

改變它[自我presentModalViewController:capturePhotoPicker動畫:是];相機是莫代爾。 – CodaFi

+0

CodaFi,你提出了一個過時的方式呈現模態視圖控制器,抱歉,但這並沒有幫助。 (根據Apple的說法,presentViewController:animated:completion:方法是呈現任何視圖控制器的首選方式,您只需調整演示文稿樣式以使其爲模態等) – spybart

+0

Apple不允許堆疊導航欄。由於圖像選擇器有自己的導航欄,因此不能放置在導航堆棧中。例如。莫代爾或無。 「過時」是什麼意思?這離真相再遠一點。過時意味着棄用,presentModalViewController似乎不會拋棄我的棄用警告:P – CodaFi

回答

0

我有完全相同的問題,然後意識到我沒有在發佈後發佈UIImagePickerController。相機現在可以在離開並返回應用程序後第一時間正常工作。

所以這是我確切的代碼:

UIImagePickerController *takePhotoController = [[UIImagePickerController alloc] init]; 
takePhotoController.sourceType = UIImagePickerControllerSourceTypeCamera; 
takePhotoController.delegate = self; 

[self presentModalViewController:takePhotoController animated:YES]; 
[takePhotoController release]; 

這是你可以花年齡的問題之一,解決的辦法是不是很明顯(當然,這不是我的),所以我希望這有助於一些人!

+1

釋放/保留物體是爲恐龍時代。您應該使用ARC並讓系統爲您處理它。 – spybart

+1

我正在使用ARC,我仍然有保存問題 – Dejell

0

如果將 - (void)viewDidLoad更改爲 - (void)viewDidAppear:(BOOL)動畫,它將修復問題。我花了最近2周試圖找出這個

相關問題