J'ai une question de conception intéressante concernant une application que je développe pour l'iPhone. Je suis en train de créer une application qui manipule des images, et il y a différents types de manipulations qui peuvent être effectuées. L'utilisateur ouvre l'application, sélectionne le type de manipulation qu'il souhaite effectuer et suit un processus pas à pas pour effectuer la manipulation.
Beaucoup de manipulations sont similaires, donc le code peut être réutilisé ici. Ainsi, au lieu de créer un contrôleur de vue pour chaque fenêtre de chaque manipulation, j'ai décidé de créer une vue et un contrôleur de vue. La vue contient les étapes de chaque manipulation d'image, et chaque fois qu'elle est incrémentée à l'étape suivante, elle se réorganise de manière appropriée. Le contrôleur de vue est contrôlé par un contrôleur de navigation, et chaque fois que l'utilisateur passe à l'étape suivante de la manipulation d'image qu'il essaie d'effectuer (c'est-à-dire qu'il pousse un nouveau contrôleur de vue sur la pile), je fais une copie de mon objet de vue, je le configure pour réorganiser ses composants à l'étape appropriée, puis je l'envoie au nouveau contrôleur de vue qui l'affichera.
Ma question est donc la suivante : pour certaines étapes des manipulations, j'ai besoin d'ajouter des boutons à une barre d'outils universelle qui est attachée au contrôleur de vue (comme il s'agit d'une vue modale, cette barre d'outils aura un bouton d'accueil qui permettra à l'utilisateur de revenir à l'écran principal). En fait, j'ai quelques questions sur la façon dont je dois aborder ce problème :
1) Dois-je simplement ajouter la barre d'outils à la vue que j'utilise, au lieu du contrôleur de vue. Dans ce cas, comment faire en sorte que le bouton d'accueil de la barre d'outils permette de quitter la vue modale ?
2) Dois-je conserver la barre d'outils dans le contrôleur de vue et faire en sorte que ma vue renvoie un ensemble de boutons à ajouter lorsque la vue se charge ? Je suppose alors que je devrais lister toutes mes méthodes d'action dans mon contrôleur de vue ?
3) Dois-je conserver la barre d'outils dans le contrôleur de vue, mais envoyer un pointeur de la barre d'outils vers mon objet de vue, puis ajouter les boutons dans ma classe de vue ? Serais-je alors en mesure d'ajouter mes méthodes d'action dans ma classe de vue ?
Quoi qu'il en soit, désolé si c'est compliqué, et si vous avez des questions complémentaires, n'hésitez pas à m'en faire part.