2009-07-09 5 views
0

J'ai une vue que j'ai construit dans le constructeur Interface avec une vue de table et des points de vente associés, etc., pour afficher une liste d'éléments. Cliquez sur un élément pour afficher le détail de cet élément.Puis-je sous-classer une vue construite avec Interface Builder?

Je veux maintenant construire une vue très similaire avec une liste des mêmes types d'éléments et quelques contrôles supplémentaires et un comportement différent sur la sélection des cellules. Dans ce cas, si l'utilisateur clique sur l'élément, il utilisera effectivement cet élément comme modèle pour créer un nouvel élément. Ou, ils peuvent cliquer sur un bouton pour créer un nouvel élément. En dehors de cela, il y a beaucoup de logique que je veux réutiliser à partir de la vue d'origine - par exemple les éléments dépendent de l'emplacement, et il y a un thread d'arrière-plan qui met à jour les informations de localisation.

Il semble que la chose naturelle à faire serait de sous-classer le contrôleur de vue d'origine, et de construire une deuxième vue d'affichage en utilisant IB. Cependant, avant de commencer, je me demande si c'est possible/pratique recommandée? IB reconnaîtra-t-il les IBOutlets dans la superclasse et les laisserai-je les câbler?

Répondre

2

IB reconnaîtra les IBOutlets définis dans la superclasse.

Vous le faites tout le temps: La sortie de la vue dans UIViewController est définie dans une superclasse que vous sous-classez pour chacun de vos contrôleurs View.

1

pgb est correct. IB reconnaîtra les sorties dans la superclasse

Quant à savoir si le sous-classement du contrôleur est une bonne ou une mauvaise idée, je ne suis pas sûr. Apple suggère de sous-classer NSArrayController afin de changer le comportement de tri/filtrage. Un contrôleur de vue est différent d'un contrôleur de tableau, mais j'ose dire que sous-classer le contrôleur de vue est probablement la bonne chose à faire.

Questions connexes