/ / Réutiliser une UITableView personnalisée dans différents UIViewControllers - iphone, ios, uitableview, code-reuse

Réutiliser un UITableView personnalisé dans différents UIViewControllers - iphone, ios, uitableview, code-reuse

Je suis en train de développer une application iPhone pour iOS 5.1. J'ai construit un UIViewController qui a un UITableView avec un UISearchDisplayController et d'autres vues, toutes en quelque sorte liées à la table. UIVIewController est le délégué et la source de données de la table, et effectue certaines personnalisations (graphiques et liées à l'entreprise) à la table et au contrôleur d'affichage de recherche. Jusqu'à présent, tout allait bien.

Le problème est que maintenant je veux mettre la même chosetable (peut-être avec une sous-liste d'éléments différente, du même type) dans différents contrôleurs (différents écrans de l'application). J'ai essayé d'ajouter la tableView de mon contrôleur en tant que sous-vue dans d'autres contrôleurs, mais cela ne fonctionne pas. J'ai essayé de reconstruire ma table en tant que sous-classe d'UIView (au lieu d'UIViewController) et de l'ajouter en tant que sous-vue, mais cela n'a pas fonctionné (il a chargé la vue à partir d'un fichier NIB, mais toutes ses propriétés, y compris les IBOutlets, où nil ou 0x000000).

Après avoir beaucoup cherché, je n'ai trouvé aucun exemplede la façon de réutiliser une tableview dans différents contrôleurs. Un indice? Un exemple? Dois-je le construire en tant que UIViewController ou en tant que UIView? Quelle classe doit être le délégué de la table et de searchdisplay, en gardant à l'esprit que la plupart de la logique que je veux réutiliser est le code dans les délégués?

Merci d'avance à tous

Réponses:

1 pour la réponse № 1

La solution la plus simple ne serait-elle pas de créer votrepropre classe Datasource (peut-être en tant que singleton), puis la réutiliser avec l'autre contrôleur? De cette façon, votre façon d'obtenir et de gérer les données est abstraite de la façon de les afficher. Juste la façon dont il devrait être. C'est à cela que sert MVC.