J'ai une application iPhone qui trouve des cafés à proximité, puis affiche les détails (adresse, heures d'ouverture, disponibilité WiFi) dans un ShopViewController. J'ai créé plusieurs autres cibles dans le projet (par exemple un supermarché, un restaurant) et chacune a des informations légèrement différentes à afficher dans le ShopViewController. Au supermarché, je veux afficher si l'alcool est à vendre. Au restaurant, je veux afficher les heures de la dernière commande, et ainsi de suite.Comment créer une NIB distincte pour chaque cible?
Ma solution actuelle n'est pas facile à maintenir. J'ai un seul NIB partagé, avec beaucoup de UILabel
s pour chaque éventualité. Même si les coffee shops n'ont pas d'informations "dernier ordre", j'utilise le même NIB avec une "dernière commande" UILabel
. Toutes mes cibles utilisent une étiquette "title", mais une seule utilise l'étiquette "alcohol". Je n'utilise que des étiquettes dans la (les) cible (s) où elles sont nécessaires. Les UILabel
s sont tous mis en place avec une chaîne vide, et quand j'étale la vue, j'ignore les étiquettes vides. Mais avec 4 cibles, il devient difficile de garder une trace.
Mon ShopViewController a des fonctionnalités partagées, donc je devine que je devrais créer des sous-classes, comme CoffeeShopViewController, qui héritent de ShopViewController. Ensuite, j'utiliser un #ifdef
pour charger le NIB correct pour la cible actuelle. Ensuite, je ne pouvais inclure la sous-classe pertinente dans chaque cible.
Est-ce la meilleure solution, ou existe-t-il une meilleure façon de gérer cela?