Dans mon application, j'ai une sous-classe UIView personnalisée (appelons-la MyView) qui contient trois boutons et deux étiquettes. J'ajoute cette vue à un contrôleur de vue qui a aussi une vue de table (j'ajoute l'instance de MyView en bas). En raison des règles de logique métier, les étiquettes et un bouton sur trois sont masqués au début. Donc, je le fais dans viewDidLoad:Problème avec certains contrôles faisant partie d'un UIView
self.myView.label1.hidden = YES;
self.myView.label2.hidden = YES;
self.myView.button1.hidden = YES;
qui fonctionne bien. Donc, ces trois sont cachés et les deux boutons restants sont visibles.
Maintenant, ce contrôleur de vue est également un délégué pour une autre classe. À un certain moment, un événement se produit dans cette autre classe qui appelle une méthode de notification dans mon contrôleur de vue.
Dans cette méthode de notification, je dois maintenant montrer les contrôles cachés. Donc, j'ai évidemment essayé ce qui suit:
self.myView.label1.hidden = NO;
self.myView.label2.hidden = NO;
self.myView.button1.hidden = NO;
mais cela ne fonctionne pas, ils n'apparaissent pas.
Une idée de ce que je fais mal? Ai-je besoin de "repeindre" self.myView après cela pour que les contrôles deviennent visibles? Qu'est-ce que j'oublie ici?
Merci beaucoup d'avance!
Modifier
J'ai ajouté quelques NSLogs après leur mise en visibilité et les journaux montrent quelque chose comme ceci:
label1.hidden = 0
label2.hidden = 0
button1.hidden = 0
Donc selon les journaux, ils devraient être visibles.
Je peux confirmer que la méthode de notification est appelée et que j'appelle setNeedsDisplay après les avoir tous définis comme visibles, mais rien. –