0 votes

Ajout de UIPickerViews à une vue avec d'autres éléments

Nouvelle question de Cocoa Touch Newbie :

Mon objectif est d'avoir une interface avec un UIPickerView et un UIButton.

Le sélecteur nécessite un délégué et une source de données, que j'avais initialement écrits sous forme d'une classe PickerController distincte implémentant les bons protocoles. Cependant, je ne suis désormais pas sûr de la manière d'utiliser Interface Builder pour tout connecter.

Si j'ai un fichier .xib distinct pour le PickerController (avec juste un UIPickerView dedans), et que j'ajoute la vue PickerController en tant que sous-vue dans le contrôleur principal, le UIPickerView est affiché correctement, mais le UIButton (qui est dans le fichier .xib principal) ne l'est pas. C'est comme si ajouter la vue PickerController prend le contrôle de toute la fenêtre et obscurcit la vue principale.

J'ai essayé de me débarrasser du fichier .xib distinct, et à la place d'ajouter le UIPickerView directement dans le fichier .xib principal. Cependant, avec cette configuration, je ne sais pas comment configurer le délégué et la source de données, car le propriétaire du fichier (le contrôleur principal) est différent de la classe que j'ai écrite (le PickerController).

Un peu d'aide avec ce qui suit serait génial :

  • devrais-je avoir une classe distincte pour chaque UIPickerView ?
  • devrais-je avoir un fichier .xib distinct pour chaque UIPickerView ?
  • si le délégué et la source de données sont dans une classe différente du propriétaire du fichier, comment les connecter ?
  • puis-je ajouter une sous-vue à la vue principale sans qu'elle interfère avec / obscurcisse les éléments de la vue principale ?

1voto

Chris Garrett Points 2468

Il est possible de faire ce que vous voulez, mais cela sort largement du chemin le plus rapide pour obtenir le résultat désiré. Si vous êtes un débutant, je vous conseillerais de rester sur les chemins faciles pour le moment, car Cocoa Touch est déjà assez difficile à apprendre.

Donc. Le chemin le plus rapide serait d'avoir votre vue principale sous-classe de la classe PickerController. Ensuite, vous pouvez créer votre fichier IB, utiliser votre classe de vue principale en tant que propriétaire du fichier, et connecter les sources de données et les délégués.

Je suppose grâce à votre score sur StackOverflow que vous êtes un développeur expérimenté qui débute sur le développement iPhone. L'approche la plus rapide ci-dessus sentira probablement bizarre, car l'héritage ne semble pas vraiment approprié. On a l'impression que vous devriez pouvoir combiner des contrôleurs, les mélanger pour construire une interface utilisateur. Et c'est possible, mais cela finit par être beaucoup de travail et un peu casse-tête si vous débutez. J'ai constaté que le bénéfice esthétique d'adopter une approche plus élégante ne vaut pas l'effort supplémentaire dans la plupart des cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X