2010-05-10 3 views
5

Je vais avoir un peu de mal en utilisant la propriété tag pour accéder à un UIButtonobtenir à un UIButton avec la propriété tag IPhone

UIButton *randomButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect ]];  
    randomButton.frame = CGRectMake(205, 145, 90, 22); // size and position of button 
    [randomButton setTitle:@"Random" forState:UIControlStateNormal]; 
    randomButton.backgroundColor = [UIColor clearColor]; 
    randomButton.adjustsImageWhenHighlighted = YES; 
    [randomButton addTarget:self action:@selector(getrandom:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    randomButton.reversesTitleShadowWhenHighlighted=YES; 
    randomButton.toggleButton 

    [self.view addSubview:randomButton]; 

    randomButton.tag=333; 

Puis, plus tard dans le code j'essaie d'obtenir le bouton de la manière suivante ce qui me donne une erreur disant

incompatibles types Objective-C 'initialisation UIView struct *', prévu 'struct UIButton *'

UIButton *random = [self.view viewWithTag:333]; 
    random.highlighted=NO; 

Répondre

23

Essayez:

UIButton *random = (UIButton *)[self.view viewWithTag:333]; 

Aussi, pourquoi êtes-vous assignez l'étiquette après avoir relâché le bouton?

+0

Merci, votre code s'est débarrassé de mon avertissement. L'ensemble conserve/relâche chose ne devrait pas être là. Même si je réussis maintenant au bouton je ne peux pas sembler changer son état à "mis en évidence". J'essaye de faire ceci dans le gestionnaire pour un événement UIControlEventTouchUpInside. Fondamentalement, j'ai 3 boutons que j'essaie d'appliquer un effet de bascule sur. Un seul bouton apparaît sélectionné à la fois – dubbeat