1

我有一個UIImagePickerController作爲我的視圖控制器的綜合屬性。UIImagePickerController不會解除內存警告

一般來說,它工作正常(採取/選擇照片,回電等)。但是,當我收到一條內存警告(在視圖控制器上調用了didReceiveMemoryWarning)時,雖然該應用程序似乎優雅地處理它(viewDidLoad被調用以使視圖無需任何多餘的視圖而重新設置等 - 應用程序不會崩潰)和UIImagePickerController讓我拍照,UIImagePickerController的視圖(在這種情況下是相機)不會被解僱。相機僅保持在屏幕上,並且「重拍」和「使用」按鈕呈灰色。

我已經嘗試在viewDidUnload中設置self.imagePicker = nil,並且也嘗試過不這樣做(因此視圖控制器在內存警告後需要關閉它時沒有「忘記」它)。

在內存警告後拍攝照片後,imagePicker成功回調(didFinishPickingMediaWithInfo),但imagePicker視圖保留在屏幕上。

任何幫助/想法將不勝感激。

+0

沒有內存警告,它能正常工作嗎?你是否從其超級視圖中移除選取器視圖? – Eiko 2010-07-02 11:30:12

+0

它工作正常。在這兩個imagePickerControllerDidCancel和didFinishPickingMediaWithInfo我使用: [self.imagePicker dismissModalViewControllerAnimated:YES]; – 2010-07-02 11:34:14

+3

如果您希望圖像採集器在應用程序收到內存警告時被解散,您可能需要在didReceiveMemoryWarning中解除它:...我不認爲操作系統會假定用戶已完成圖像採集,除非它被解散或飾面。 – Kalle 2010-07-02 12:07:07

回答

3

非常感謝卡勒的評論和基本上,解決問題。

答案是,我不僅需要確保imagePicker沒有被設置爲無viewDidUnload,但我然後需要在didReceiveMemoryWarning中刪除/關閉它。當你知道答案時很簡單 - doh! ; o)

再次感謝StackOverflow。

+1

很高興聽到你解決了它。 :) – Kalle 2010-07-03 09:01:44