removeFromSuperview ne fonctionne pas
J'ai besoin d'être en mesure de supprimer un bouton à partir d'une vue et d'ajouter un autre. Mon code ressemble à ceci:
-(void)UpdatePromoBanner:(NSString*)value{
[button setTitle:@"newer text" forState:UIControlStateNormal];
for (UIView *subView in emptyViewController.view.subviews)
{
if(subView.tag == 99) {
//--remove button and add an updated one
NSLog(@"Remove button?");
[subView removeFromSuperview];
//[subView.superview addSubview:button];
}
}
NSLog(@"event called");
}
-(void)AddPromoBannerToBottom:(UIView*)view {
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:lblForBannerButton forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
button.tag = 99;
[view addSubview:button];
}
La emptyViewController est juste une plaine vide-vue-contrôleur. Je suis en ajoutant un bouton dans le milieu. J'ai frappé à la NSLog ok qui vérifie la balise, mais la vue n'est pas supprimé. Je dois mentionner que je suis en utilisant un thread c'est le tir à la updatepromobanner toutes les 5 secondes.
Veuillez commencer votre méthode de noms avec des lettres minuscules.
OriginalL'auteur user987723 | 2012-08-17
Vous devez vous connecter pour publier un commentaire.
Oscar est à droite. Vous devez mettre à jour l'interface sur le thread principal. Pensé que je voudrais ajouter un peu de code pour vous aider.
Remplacer:
Avec:
Et je pense que vous devriez être bon d'aller sans rien changer d'autre.
Ravi de vous aider. Amusez-Vous Bien 🙂
Hey @RyanPoolos, je me demandais si si, à la place d'un bouton, il est possible de viewcontroller que je voulais prendre? Chaque fois que je l'enlever,il serait jeter une erreur. Si vous avez le temps, voici une question que j'ai posté il y a plusieurs heures. stackoverflow.com/questions/15490656/... Merci!
Semble étrange qu'Apple avertir dans la documentation de l'appel de cette à partir de la vue du
drawRect:
méthode (ce qui semble moyennement évident), mais ne pas le mentionner.OriginalL'auteur Ryan Poolos
Vous ne pouvez pas mettre à jour l'INTERFACE utilisateur à l'aide d'un thread secondaire, à chaque fois que votre fil est en train de faire l'INTERFACE utilisateur des mises à jour, vous devez appeler le thread principal.
OriginalL'auteur Oscar Gomez
Rappelez-vous la mise à jour de l'INTERFACE utilisateur dans le thread principal 🙂
OriginalL'auteur Hongli Yu