J'ai un UIView dans un UIViewController auquel j'ajoute une sous-vue personnalisée dans la méthode viewDidAppear
.Comment mettre à jour ou réinitialiser un UIView avec une sous-vue personnalisée?
MyView *myView = [[MyView alloc] initWithLabelText:text];
[self.view addSubview:myView];
[myView release];
La variable text
est une chaîne utilisée sur une étiquette dans myView
. Ce text
change chaque fois que vous revenez à la vue actuelle. Mais il semble que viewDidAppear
ne recharge pas la vue - il charge plutôt une nouvelle vue sur l'ancienne - donc j'ai deux étiquettes les unes sur les autres. J'ai essayé d'utiliser viewWillAppear
mais cela ne fait aucune différence. J'ai également essayé d'utiliser [self.view setNeedsDisplay]
- ne aide pas. J'ai également essayé de faire myView
une variable d'instance, mais cela n'a pas aidé non plus.
Ce qui a été de supprimer le point de vue explicitement, quand je déclarais comme une variable d'instance:
- (void)viewDidDisappear:(BOOL)animated
{
[_myView removeFromSuperview];
}
Bien qu'il y ait cette solution de contournement, je voudrais simplement revenir à la vue lors de l'obtention revenir. Est-ce que quelqu'un sait comment faire cela? J'apprécierais;)
Merci. Mais alors il doit encore être une variable d'instance, n'est-ce pas? – marikaner
Pas nécessairement, mais une variable d'instance qui est aussi une propriété est un bon endroit, car cela aidera à gérer le nombre de retenues. (Et assurez-vous de ne pas "couvrir" votre variable d'instance avec une variable locale du même nom, ou utilisez une variable d'instance dans un autre objet par erreur.) – hotpaw2