J'ai un UIImagePickerController comme une propriété synthétisée de mon contrôleur de vue.UIImagePickerController ne se ferme pas après l'avertissement de mémoire
En général, cela fonctionne bien (prendre/prendre des photos, rappeler, etc.). Cependant, quand je reçois un avertissement de mémoire (didReceiveMemoryWarning est appelé sur le contrôleur de vue), bien que l'application semble le manipuler avec élégance (viewDidLoad est appelé pour que la vue soit à nouveau configurée sans aucune vue extérieure - l'application ne plante pas) et le UIImagePickerController me permet de prendre une photo, la vue de UIImagePickerController (dans ce cas la caméra) n'est pas rejetée. L'appareil photo reste à l'écran avec les boutons Retake et Use grisés.
J'ai essayé de paramétrer self.imagePicker = nil dans viewDidUnload et j'ai également essayé de NE PAS le faire (ainsi le contrôleur de vue ne l'a pas 'oublié' quand il doit le fermer après l'avertissement de mémoire). Une fois la photo prise après l'avertissement de mémoire, l'imagePicker effectue un rappel avec succès (didFinishPickingMediaWithInfo), mais la vue imagePicker reste affichée à l'écran.
Toute aide ou idée serait grandement appréciée.
Fonctionne-t-il correctement sans avertissement de mémoire? Retirez-vous la vue du sélecteur de son aperçu? – Eiko
Cela fonctionne correctement. Dans imagePickerControllerDidCancel et didFinishPickingMediaWithInfo j'utilise: [self.imagePicker dismissModalViewControllerAnimated: YES]; –
Si vous souhaitez que le sélecteur d'image soit ignoré lorsque l'application reçoit un avertissement de mémoire, vous devez probablement l'ignorer dans didReceiveMemoryWarning: ... Je ne pense pas que le système d'exploitation présume que l'utilisateur a fini avec le sélecteur d'image. finit. – Kalle