2009-08-12 6 views
1

Pour mon application, j'en ai un UIViewController et environ 8 UIView s. Les vues sont toutes les propriétés du contrôleur de vue, liées via le constructeur d'interface (IBOutlet). Ainsi, lorsque le contrôleur de vue se charge, toutes les vues sont également chargées et j'ai des méthodes intégrées pour basculer entre les différentes vues.Est-ce que toutes les vues liées à un contrôleur de vues sont une mauvaise pratique?

Est-il mauvais de les avoir tous liés à un seul contrôleur de vue - chaque vue devrait-elle avoir son propre contrôleur de vue? Parce qu'ils sont tous liés à un, je suppose qu'ils sont tous en mémoire en même temps et ne sont jamais libérés parce que le contrôleur de vue lui-même n'est jamais libéré.

Quelle est la pratique standard pour cela?

Répondre

4

Si vous avez un groupe de vues qui seront toujours à l'écran en même temps, elles doivent être contrôlées par un UIViewController.

Si vous avez un ensemble de vues qui alterneront entre le contrôle total de l'écran, chaque vue devrait avoir ses propres UIViewController.

Si une seule vue est toujours à l'écran qui délègue une partie de l'écran à une autre vue qui peut changer, vous devez avoir un UIViewController pour gérer la vue principale ainsi qu'un UIViewController par sous-vue.

(Chaque fois que vous avez une vue qui peut parfois être à l'écran et parfois hors de l'écran, vous devriez probablement utiliser un UIViewController pour gérer sa durée de vie.)

+0

Ahm .. Comment voulez-vous exactement utiliser un séparer UIViewController pour gérer un _subview_? Dans la documentation de UIViewController: "Vous utilisez chaque instance de UIViewController pour gérer une vue en plein écran." –

+0

Il existe de nombreuses sous-classes de 'UIViewController' qui ne gèrent pas les vues en plein écran, comme' UITabBarController'. Il peut encore gérer la durée de vie d'une vue même si cette vue n'est pas en plein écran. –

+0

Bonne explication John, merci! –

Questions connexes