– (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath no se llama

Entonces, es realmente extraño … Tengo un ViewController llamado ListEventsViewController

en el file de encabezado:

@interface ListEventsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> @property (weak, nonatomic) IBOutlet UITableView *eventsTable; @property (strong, nonatomic) NSArray *events; @end 

En la implementación, estoy llamando a las funciones bastante obligatorias a continuación:

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [events count]; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = nil; cell = [eventsTable dequeueReusableCellWithIdentifier:@"eventCell"]; if(!cell){ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"eventCell"]; } NSString *textLabelTitle = [[events objectAtIndex:indexPath.row] objectForKey:@"name"]; NSString *textLabelDetail = [[events objectAtIndex:indexPath.row] objectForKey:@"date"]; //cell.imageView.image = someimage; NSLog(@"Text Label Title: %@", textLabelTitle); NSLog(@"Text Label Detail: %@", textLabelDetail); cell.textLabel.text = textLabelTitle; cell.detailTextLabel.text = textLabelDetail; return cell; } 

El problema es la function – (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {no se llama así que las celdas no se llenan. Tampoco se asigna el número de celdas. ¿Qué podría estar causando esto?

Parece que está conectado a mí una image de la H e IB. introduzca la descripción de la imagen aquí

Ha ilustrado en su captura de pantalla que ha vinculado la tabla a su IBOutlet, pero no ha vinculado el delegado o la fuente de datos de la vista de tabla a su controller y, por lo tanto, no se cellForRowAtIndex sus delegates de tablas, como cellForRowAtIndex . Vincular estos debería solucionar su problema.

Tengo esto y esto debe ser tu solución.

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ if (cell==nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; mysampleimage = [[UIImageView alloc]initWithFrame:CGRectMake(3,3, 40, 40)]; mysampleimage.image=[UIImage imageNamed:@"a.png"]; mysampleimage.tag=13; [cell.contentView addSubview:mysampleimage]; myButton = [[UIButton alloc]init]; myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; myButton.frame = CGRectMake(165, 10, 65, 30.); [myButton setTitle:@"Show" forState:UIControlStateNormal]; myButton.tag = 14; [cell addSubview:myButton]; lbl = [[UILabel alloc]initWithFrame:CGRectMake(50, 6, 200, 43)]; lbl.tag=12; [cell.contentView addSubview:lbl]; } else { lbl=(UILabel *)[cell.contentView viewWithTag:12]; mysampleimage=(UIImageView *)[cell.contentView viewWithTag:13]; myButton = (UIButton *)[cell.contentView viewWithTag:14]; } myButton.accessibilityLabel = lbl.text; [myButton addTarget:self action:@selector(myShow:) forControlEvents:UIControlEventTouchUpInside]; return cell; } 

Puede usar las siguientes líneas en su encoding:

 tableview.delegate = self; tableview.datasource = self; 

Lo que me ayudó fue comentar el número de las secciones de vista intensa