UITableViewCell Data desaparece después del desplazamiento

Tengo un tableView en un proyecto de arco. Cuando lo desploop incluso por un segundo, todos los datos se ocultan o desaparecen.

Estoy pasando datos de otro controller a través de la propiedad Strong.

CTableViewController* cTableVc=[[CTableViewController alloc] initWithNibName:@"CTableViewController" bundle:nil]; cTableVc.cArray=[[NSArray alloc] initWithArray:[MyVC pathForAllCardsInDocumentDiretory]]; cTableVc.view.frame=CGRectMake(0, 0, cTableVc.view.frame.size.width, cTableVc.view.frame.size.height); [self.view addSubview:cTableVc.view]; 

Aquí está mi propiedad

 @property(strong, nonatomic) NSArray* cArray; 

CTableViewController.m tableView methods

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. return [_cardArray count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *CellIdentifier = @"CTableViewCell"; CTableViewCell *cell = (CTableViewCell *) [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CTableViewCell" owner:self options:nil]; for (id currentObject in topLevelObjects){ if ([currentObject isKindOfClass:[UITableViewCell class]]){ cell = (CTableViewCell *) currentObject; break; } } } // Configure the cell... NSString* strPath=[cArray objectAtIndex:indexPath.row]; cell.cardImageView.image=[UIImage imageWithContentsOfFile:strPath]; cell.cardNameLbl.text=[NSString stringWithFormat:@"My Card %d", arc4random() % 9]; cell.selectionStyle=UITableViewCellSelectionStyleNone; return cell; } 

El problema es con el código en el que creó el controller de vista y agrega la vista del nuevo controller de vista como una subvista. Tal como está, no guarda una reference al controller de vista. Entonces, el controller de vista se desasigna y la tabla se deja sin delegado ni fuente de datos.

La solución adecuada es utilizar los methods del contenedor UIViewController y agregar el nuevo controller de vista al controller de vista actual.

Llamada:

 [self addChildViewController:cTableVc]; 

después:

 self.view addSubview:cTableVc.view]; 

Consulte los documentos de UIViewController ya que hay que hacer más que solo esta línea.