Je dois être capable de supprimer un bouton 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]; }
3 Réponses :
Vous ne pouvez pas mettre à jour l'interface utilisateur à l'aide d'un thread secondaire, chaque fois que votre thread est des mises à jour de l'interface utilisateur, vous devez appeler le fil principal. P>
Oscar a raison. Vous devez mettre à jour l'interface sur le fil principal. Figuré j'ajouterais un certain code pour aider.
Remplacer: p> avec: p> et je Pensez que vous devriez être bon d'aller sans changer d'autre. P> p>
Me conduisait fou pendant des heures. Merci!
Heureux de vous aider. Codage heureux :)
Hey @ryanpoolos, je me demandais si quoi se passe-t-il si au lieu d'un bouton, c'est un mode de vue distinct de Concontroller Taht, je voulais sortir? Chaque fois que je l'enlève, cela lancerait une erreur. Si vous avez le temps, voici une question que j'ai postée il y a plusieurs heures. Stackoverflow.com/ Questions / 15490656 / ... Merci!
Semble étrange que Apple avertit dans la documentation sur l'appelant de la part de la méthode de la vue Drawrect: Code> (qui semble modérément évidente) mais ne mentionne pas cela.
dispatch_async(dispatch_get_main_queue(), ^{ [subView removeFromSuperview]; }); Remember update UI in main thread :)
Veuillez commencer vos noms de méthodes avec des lettres minuscules.