2010-01-05 5 views
0

J'ai créé un UIView et je peux y ajouter des choses en utilisant [self.topView addSubview: image]; Maintenant j'importe une classe pour créer un calendrier qui a un tas de boutons. Je pourrais le mettre dans la même classe et dire [self.topView addSubview: button] mais si c'est dans une autre classe comment l'ajouter à la sous-vue de la classe qui le possède? Espérons que cela a du sens ...Ajout d'un élément à une sous-vue à partir d'une classe externe

Répondre

1

Vous avez besoin d'une référence dans votre classe externe à la classe qui possède la vue (appelez la "classe propriétaire"), et probablement écrire une méthode dans votre classe de propriétaire pour ajouter un passé en vue de votre sous-vue choisie. Quelque chose le long des lignes de:

- (void) insertSubview:(UIView*)newView { 
    if (newView) [self.topView addSubview:newView]; 
} 

Configuration de la référence peut être fait de plusieurs façons, donc je vais laisser un à vous.

+0

Dites-vous que je dois passer dans la sous-vue à la classe externe? – Rudiger

+0

Vous pourriez passer la sous-vue dans l'autre classe, mais cela casserait l'encapsulation, ce qui est une mauvaise pratique. Je vous suggérais d'ajouter une méthode à la classe qui possède la sous-vue, et de l'utiliser pour permettre à la classe propriétaire d'effectuer le travail nécessaire pour que la vue soit ajoutée à la hiérarchie. – rpj

Questions connexes