IBAction sur un button dans Custom UITableViewCell

En utilisant iOS 5::: J'ai un scénario où je dois créer une tableView avec des cellules personnalisées. Les cellules personnalisées ont un controller appelé Sous-class TainingCellController de UITableViewCell et un file NIB TrainingCell.xib. Alors que la table parent est placée dans un UIViewController appelé TrainingController.

Maintenant, je me request sérieusement, la relation de ce CustomCell au propriétaire du file, qui reçoit les IBActions ou IBOutlets ..

Dans le file NIB de cellule personnalisée, je peux modifier le propriétaire du file (par défaut défini sur NSObject) et également cliquer sur la cellule elle-même et modifier sa class de UITableViewCell à TrainingCellContrller.

Quelles devraient être les classs appropriées pour ces deux options? Où les IBActions et IBOutlets devraient-ils être définis (TrainingCellController ou TrainingController)?

Et que dois-je faire si j'ai besoin de sockets pour "labels dans une cellule personnalisée" à définir dans TrainingCellController alors que l'action du button doit être définie dans TrainingController ??

Vous allez définir la class de votre CustomCell à la class de votre CustomCell et vous allez définir les IBoutlet dans la class CustomCell et les connecter.

Ensuite, vous définirez le propriétaire du file Xib sur votre ViewController , et dans votre ViewController vous déclarerez un

 IBOutlet CustomCell *yourClassLevelCell; 

et connectez cette IBOutlet à IBOutlet de votre Xib

Maintenant, quand vous allez initier la cellule à l'intérieur de ViewController's méthode cellForRowAtIndexPath votre cellForRowAtIndexPath vous appendez manuellement la cible, quelque chose comme ceci:

 CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]; cell = yourClassLevelCell; [cell.button addTarget:self ... ]; //button is IBOutlet in your CustomCell class which you will have //connected to your Button in xib } 

Essayez de travailler avec des buttons dynamics sur la même class tableView

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"WorkRequestedCC" owner:self options:nil]; { for (id oneObject in nib) if ([oneObject isKindOfClass:[WorkRequestedCC class]]) cell = (WorkRequestedCC *)oneObject; } UILabel *Button=[[UIBUtton alloc]initWithFrame:CGRectMake(792, 13, 10, 15)]; [Button addTarget:self action:@selector(ButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubview:Button]; } -(void) ButtonClicked { //your code here } }