2009-07-09 5 views
1

Je suis un débutant qui vient de commencer avec iPhone et Obj-C depuis un mois maintenant.Quel bouton a été tapé ... iPhone et Obj-C question

J'ai deux boutons, deux d'entre eux appellent la même fonction que suit

[play addTarget:self action:@selector(showQstn:) forControlEvents:UIControlEventTouchUpInside]; 

Dans la fonction showQstn, je veux savoir ce que le bouton a été exploité. Une idée? D'autres idées sont les bienvenues aussi.

TIA

Répondre

3

En supposant que showQstn: est déclarée comme

-(void) showQstn:(id)sender; 

L'argument sender est l'objet de déclenchement de l'événement. EDIT: Vous pouvez également faire la distinction entre les boutons en utilisant tag property. Chaque vue possède un identifiant unique tag (qui peut être défini par programmation ou via Interface Builder).

EDIT: UIButton n'a pas de propriété title, d'où l'erreur. Il a un titleForState:. Donc, vous devriez changer votre code à ce qui suit:

NSString *title = [sender titleForState:UIControlStateNormal]; 
if ([title isEqualToString:@"PLAY!"]) { 
    name.text = title; 
} 
0

Vous obtenez le bouton cliqué comme argument de votre méthode de IBAction showQstn :. Vous pouvez envisager de définir le tag sur les boutons, puis d'utiliser [Sender tag] pour identifier celui qui a déclenché la méthode IBAction.

Questions connexes