2010-11-10 2 views
0

Supposons que j'ai un contrôleur de navigation où l'action suivante est de prendre une photo ou de sélectionner une image de la bibliothèque.iOs: Quand dois-je initialiser les contrôleurs à venir (UIImagePickerController) à partir d'une vue?

Si j'initialise UIImagePickerController pendant didSelectRowAtIndexPath:, (je crois) la réponse sera un peu plus lente car le contrôleur doit être initialisé. En outre, si l'utilisateur annule et ouvre à nouveau, il réinstancie ce contrôleur à chaque fois.

Cependant, si je crée le contrôleur pendant viewDidLoad: du contrôleur de navigation, il prend de la mémoire pendant que l'utilisateur est sur cette vue. Questions secondaires: Est-ce que cela ralentit le temps de chargement de la navigation?

Ou devrait-il être fait dans un NSOperation lorsque la vue est chargée?

Dans l'ensemble, quel serait le meilleur endroit pour charger l'ImagePicker?

Répondre

1

Je chargerais paresseusement le contrôleur quand il est appelé pour la première fois (dans didSelectRowAtIndexPath), donc il ne devrait pas être rechargé à chaque fois, et ne pas s'inquiéter du temps d'initialisation.

0

Il semble que dans votre cas, vous aurez toujours besoin d'un sélecteur d'image sur didSelectRowAtIndexPath. Vous pouvez le charger sur la vue et le personnaliser (caméra, cameraroll, etc.) et le présenter sur la sélection de ligne. Probablement, cela n'a pas beaucoup d'importance. UIImagePickerController la présentation est très lente quand même, surtout avec l'appareil photo. Je ne recommande pas NSOperation pour cette tâche.

Questions connexes