2012-09-17 171 views
1

我一直在尋找SO來解決這個問題,但我還沒有找到任何解決我的問題的東西。 所以這裏是問題:UIImagePickerController白色屏幕

我的應用程序有時會加載一個白色屏幕,當它應該加載按鈕觸摸上的UIImagePickerController。

這是一個內存問題,因爲這隻有在內存警告觸發時纔會發生。 看起來內存警告在兩個視圖控制器之間的轉換過程中釋放原始viewcontroller(加載imagepicker的視圖控制器)。

這導致沒有原始的viewcontroller,也沒有加載UIImagePickerController(因爲它沒有父級),換句話說就是白色的屏幕。

另外值得一提的是,我編程解僱內存警告之前和「呈現」的VC蟻后它不會重現該問題:

[[UIApplication sharedApplication] _performMemoryWarning]; 
[self presentModalViewController:picker animated:YES]; 
[[UIApplication sharedApplication] _performMemoryWarning]; 

任何幫助表示讚賞!

+0

你將不得不考慮使用較少的內存,檢查是否清理所有資源首先。如果您關閉了didReceiveMemoryWarning中的UIImagePickerController,會發生什麼情況? – ggfela

+0

問題是原始的vc沒有收到任何內存警告。任何想法如何重現場景? – TompaLompa

+0

在模擬器中,你可以做硬件 - >模擬內存警告 – ggfela

回答

0

然後,我會:

  1. 如果你可以直接檢查:檢查viewWillAppear如果 UIImagePicker被加載,如果需要手動加載它。
  2. 如果您不能直接檢查:覆蓋您的自定義UIViewController子類中的didReceiveMemoryWarning方法。設置此功能的布爾像imagePickerNeedsReload = YESviewWillAppear檢查這個標誌,並進行1
+0

問題是原始的vc沒有收到任何內存警告。任何想法如何重現場景? – TompaLompa

+0

寫一些簡短的應用程序,即在20秒內需要大量內存,然後在你之前開啓。你肯定會得到記憶警告。 –

+0

您可能會追查從應用程序委託向下查看內存警告的調用鏈,查看控制器以檢查事件傳播是否已正確設置,並且所有vc都收到警告 –