2011-01-19 2 views
1

Il existe des articles similaires sur ce sujet, mais ma situation semble être un peu différente. Cela dit, il semble également que ce devrait être un problème commun à surmonter.Créer un UIView dans Interface Builder

J'ai un contrôleur de vue (StatsViewController) qui a un UIScrollView vide pour le moment. Ce que je voudrais faire est de créer une classe UIView personnalisée, et la mettre en forme à l'aide d'Interface Builder et que StatsViewController utilise cette vue plusieurs fois. Mais c'est un nombre inconnu de fois actuellement. Fondamentalement, le StatsViewController va tirer un peu de JSON d'un service web, en passant par le service, et pour chaque "boucle" je voudrais instancier une nouvelle vue en utilisant mon UIView personnalisé et l'ajouter à l'UIScrollView dans StatsViewController. Mon problème est lorsque je crée l'UIView dans le constructeur d'interface, je n'arrive pas à comprendre comment l'instancier en utilisant la pointe à travers la boucle. J'ai lu que vous chargez les contrôleurs de vue en utilisant une plume, et non pas UIView simple ... mais en même temps, j'ai lu que vous ne pouvez pas (ou ne devriez pas) avoir UIViewControllers imbriqués, donc je suis à perte.

Si je crée une vue personnalisée dans Interface Builder, comment puis-je l'instancier plusieurs fois sur le même contrôleur de vue?

Répondre

1

Chaque vue sera son propre objet. Si vous stockez chacun dans un tableau, vous pouvez accéder à chaque vue via le tableau. Cela vous permettrait de les contrôler tous avec un contrôleur.

Et non, vous chargez les plumes avec le chargeur plume. Ils pourraient décrire quoi que ce soit. Il n'a pas besoin d'avoir un contrôleur dedans.

1

Une astuce simple pour obtenir ce que vous voulez est de la même manière que vous implémentez un UITableViewCell dans Interface Builder.

Dans Interface Builder, définissez le propriétaire du fichier sur UIViewController, chargez votre plume, puis saisissez l'affichage de ce contrôleur de vue. Vous pouvez alors (tant que vous conservez la vue), se débarrasser du VC.

Donc, ce que je vous suggère de faire, c'est de regarder les deux premiers tiers de la session 104 de la WWDC10, pour avoir une idée de la façon de mettre en œuvre la réutilisation des cellules. Ensuite, si vous voulez implémenter vos cellules dans IB, utilisez la méthode ci-dessus (il existe d'autres façons de le faire, mais elles sont toutes hackish), vous pouvez le faire.

Questions connexes