2010-11-09 15 views
0

J'ai une valeur appelée ID membre et je veux l'envoyer à un autre contrôleur de vue, Si je place ce qui suit dans didSelectRowAtIndexPath, La valeur passe à la variable "membre" . S'il est placé dans cellForRow, il est bien sûr réécrit avec chaque ligne créée. J'ai un bouton dans chaque ligne qui lance un viewController, je veux que l'action du bouton saisisse les lignes "member" et le passe au nouveau contrôleur. Existe-t-il une méthode "didSelectButton at index path" ou un moyen de l'obtenir à la volée?Passer une valeur sur une méthode de bouton IBAction dans une ligne UITableview

des idées seraient géniales. C'est la première fois que j'ajoute un bouton à un UiTableview.

Merci

+0

Voir cette question (et réponse) http://stackoverflow.com/questions/1802707/detecting-which-uibutton-was-pressed-in-a-uitableview/1802875#1802875 – Vladimir

+0

@ Vladimir Merci j'ai utilisé ce lien, fonctionne parfait. –

Répondre

1

Pourquoi ne pas utiliser la vue accessoire? C'est un bouton intégré que vous pouvez habiller avec n'importe quelle image que vous voulez donner à l'interface utilisateur tout type de sensation qui est nécessaire. Ensuite, ajoutez ce au délégué de la table:

accessoryButtonTappedForRowWithIndexPath: (NSIndexPath *) indexPath{ ... } 

Vous serez alors en mesure d'appeler votre méthode sur votre source de données de table et de lancer votre point de vue secondaire.

+0

J'ai utilisé ceci avec le lien @ Vladimir, fonctionne parfaitement. –

+0

Comment cela est-il censé fonctionner? La documentation sur cette méthode indique clairement "Cette méthode n'est pas appelée lorsqu'une vue accessoire est définie pour la ligne à indexPath". En effet, dans mon cas, la méthode n'est pas appelée si je définis un bouton personnalisé comme vue accessoire. – Katlu

0

Jouez simplement avec "tag".

Chaque UIView possède une balise d'attribut (int).

dans le cellForRowAtIndexPath:

//create yourButton and then 
yourButton.tag = memberIndex; 

et lorsque vous utilisez un IBAction juste obtenir l'expéditeur:

- (IBAction) didSelectButton:(id)sender 
{ 
int memberIndex = ((UIButton *)sender).tag; 
// 
} 

conseils: pour obtenir l'expéditeur lorsque vous définissez la propriété d'action de votre bouton ne pas oublier le ":"

EG

action = @selector(didSelectButton:);