7
votes

Quand Subclass UIViewController pour la Sous-View personnalisé?

J'ai vu des sous-classes personnalisées implémentées comme une sous-classe uiviewcontroller , mais cela aurait peut-être pu être implémenté comme une sous-classe uiview .

Quand dois-je sousclure uiviewcontroller au lieu de uiview pour une sous-vision? Existe-t-il des inconvénients au sous-classement uiviewcontroller ?


1 commentaires

Peut-être que lorsque vous avez des sous-visions complexes qui doivent implémenter des autres sous-visVIEW. Dépend de l'affaire :-)


4 Réponses :


6
votes

Personnellement, lorsque j'ai besoin d'une logique significative pour continuer, je le fais avec un uiviewcontroller sous-classe. De plus, si je cherche une partie du comportement que vous obtenez de uiviewcontroller par exemple le présentant de manière modale ou dans un contrôleur de navigation.

Si vous faites quelque chose de assez simple ou léger, un uiview est généralement suffisant. Il me semble que vous les utilisiez le plus souvent lorsque vous effectuez des boutons personnalisés et des cellules de vue de table.

Dans mon expérience, je me suis retrouvé en utilisant davantage de sous-classes uiviewcontroller que uiview sous-classes, mais ce n'est peut-être pas le meilleur, il arrive tellement que je me sens un peu plus Confortable en utilisant des contrôleurs d'affichage plutôt que des vues tout droit.


0 commentaires

2
votes

Vous serez également sous-classes l'UIViewController si vous allez utiliser un AdbannerView dans votre "vue". AdbannerView a besoin d'un UIViewController pour pouvoir travailler.


0 commentaires

4
votes

Jetez un coup d'œil sur ce que Apple a à dire sur objets du contrôleur et le modèle de conception MVC

dans le contrôleur iOS devraient généralement remplir au moins un des rôles suivants:

  1. Les contrôleurs de coordination fournissent une logique spécifique à l'application. Ils répondent aux messages, notifications et ibactions délégués. Les contrôleurs de coordination configurent également des connexions entre d'autres objets et gèrent souvent la création et la destruction de ces objets.

  2. Visualiser les contrôleurs, spécifiquement uiviewControlers, gérez l'affichage d'une "écran" de contenu et de passer des transitions de déclenchement vers le prochain "écran". Ils répondent aux avertissements de mémoire et aux événements de rotation.

  3. Les contrôleurs de médiation existent dans OS X mais leur rôle est généralement rempli de contrôleurs d'affichage dans iOS. Ils agissent comme un intermédiaire entre les vues et les modèles; Mise à jour des modèles Lorsque les vues reçoivent des vues d'entrée et de mise à jour lorsque les modèles changent.

    Si le comportement que vous mettez dans l'une de ces catégories, vous souhaitez probablement créer un objet contrôleur. Si votre logique ne concerne que l'affichage des données (et éventuellement répondre à l'entrée de l'utilisateur), il appartient peut-être à la couche de vue. Si votre logique concerne les données elles-mêmes, elle appartient probablement au modèle. Si vous ne trouvez pas de bon ajustement pour votre logique dans l'une de ces couches, vous devez probablement le modeler différemment comme une combinaison de différentes responsabilités appartenant à différents objets de différentes couches. C'est-à-dire une vue qui demande des données à afficher à partir d'un contrôleur de visualisation de médiateur.


0 commentaires

1
votes

La règle du pouce I Suivre est, si vous faites un dessin personnalisé, Sous-classe UIView. Sinon, la sous-classe UIViewController.


0 commentaires