Les états d'affichage de guide de programmation du contrôleur de l'utilisation de ce point de vue au sujet de contrôleur:Utilisation des contrôleurs affichage personnalisé pour gérer les différentes parties de la même vue hiérarchique
Chaque objet contrôleur de vue personnalisée créer est responsable de la gestion de tous du vues dans une seule vue hiérarchie. Dans les applications iPhone, les vues dans une hiérarchie de vues couvrent généralement l'intégralité de l'écran, mais dans les applications iPad, elles peuvent couvrir seulement une partie de l'écran. La correspondance un-à-un entre un contrôleur de vue et les vues dans sa hiérarchie de vue est le facteur de conception clé . Vous ne devez pas utiliser plusieurs contrôleurs de vue personnalisée à gérer différentes parties de la même vue hiérarchie. De même, ne doit pas utiliser un seul objet contrôleur pour gérer plusieurs écrans ayant une valeur de contenu de .
Je comprends que si nous utilisons avec plusieurs contrôleurs de vue personnalisée de contrôler les parties d'une vue (par exemple un contrôleur de vue de gérer les sous-vues d'une vue principale qui à son tour est géré par un contrôleur de vue) les méthodes par défaut comme:
didReceiveMemoryWarnings
viewWillAppear
viewWillDisappear
viewDidUnload
etc etc. ne seront pas appelés. En dehors de cela, existe-t-il une autre raison solide pour laquelle nous ne devrions pas utiliser plusieurs contrôleurs de vue pour gérer les sous-vues respectives d'une vue?
La documentation a également fournir une solution de rechange qui se lit comme:
Note: Si vous voulez diviser une vue hiérarchie en plusieurs sous-zones et gérer chacun séparément, utilisez objets contrôleur générique ( sur mesure objets descendant de NSObject) au lieu de voir les objets de contrôleur à gérer chaque sous-zone. Utilisez ensuite un seul objet contrôleur de vue pour gérer les objets de contrôleur générique .
Mais il n'y a aucune mention à pourquoi plusieurs contrôleurs de vue ne doivent pas être préférés. Ma question est la suivante:
Pourquoi ne le préférerions-nous pas? Je m'inquiète parce que je préfère utiliser la sous-classe de UIViewController pour gérer mes vues car je les charge depuis la plume à chaque fois et je sépare les plumes pour chaque contrôleur de vue. Il devient facile de répondre aux changements dans les étapes ultérieures du projet. Est-ce mal? Dois-je nécessairement changer mon style de programmation, ou est-ce que je suis d'accord avec cette approche?
Merci,
Raj
Oui, cela peut être fait, je peux créer une sous-classe NSObject et le désigner comme propriétaire d'un fichier pour cette plume. Mais je me demandais s'il y avait d'autres raisons spécifiques de ne pas le faire de cette façon. Votre explication de l'objet étant "lourd" suffit, à partir de maintenant. –
Eh bien, je pense juste que c'est à peu près inutile. Puisque la seule raison que vous avez donnée était de les séparer dans IB, et cela peut être fait avec un NSObject. Je ne pense pas que vous utiliserez l'une des méthodes de UIViewController, alors pourquoi sous-classer cet objet spécifique? Je veux dire que vous pouvez également sous-classer toute autre sous-classe UIResponder (comme UIView, ou UIButton), mais comme la seule chose intéressante que vous utilisez est la vue IBOutlet, vous n'avez pas besoin d'un tel objet spécifique. – Julien
Ouais, très vrai. D'accord. –