2010-07-28 6 views
4

J'ai un UITableView qui a des cellules personnalisées en tant que lignes. Dans ces cellules personnalisées, ils ont 2 boutons. J'attrape le clic du bouton dans la classe de cellule personnalisée.Iphone UITableView événement de bouton de cellule personnalisée

Je me demande simplement comment je passe cet événement de la classe de cellule personnalisée au contrôleur de vue parent qui détient le contrôle UITableView. Conseil?

Merci

+0

Je pense que vous cherchez peut-être quelque chose qui n'existe pas comme: UITableView * TBL = [cellule tableView]; Au lieu de suggérer mvds, il suffit de définir la cible du bouton lorsque vous créez la cellule pour être un sélecteur dans la vue tableau. – NWCoder

Répondre

2

Vous pouvez spécifier les actions un UIButton effectue en utilisant

[button addTarget:self action:@selector(doStuff:) 
      forControlEvents:UIControlEventTouchDown]; 

examen de la documentation UIControl pour plus d'informations. (UIButton hérite de UIControl)

4

Vous pouvez faire ceci:

- (void)buttonTapped:(id)sender event:(id)event 
{ 
    CGPoint touchPosition = [[[event allTouches] anyObject] locationInView:self.tableView]; 
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:touchPosition]; 
    if (indexPath != nil) 
    { 
     //do Something here 
    } 
} 

// in cellForForAtIndexPath, bind the selector: 

UIButton *button = (UIButton *)[cell viewWithTag:1]; 
[button addTarget:self action:@selector(buttonTapped:event:) forControlEvents:UIControlEventTouchUpInside]; 
Questions connexes