TableView dans UITableCell

Bonjour,

Je souhaite imbriquer des TableView dans des TablesCell pour afficher des listes imbriquées sans changer de vue…
A terme, j’aurai 4 niveaux de liste, mais j’essaie déjà de régler le cas à 2 niveaux :

J’ai un ViewController qui me permet de gérer une vue avec 2 TableView indépendantes :

@interface DetailsDossierViewController : UIViewController<UITableViewDelegate, UITableViewDataSource, donnerListeActesDossier_V2Protocol>

@property (nonatomic, strong) WS_WTActeDossier_V2 *dossier;

@property (weak, nonatomic) IBOutlet UILabel *lblReferenceDossier;
@property (weak, nonatomic) IBOutlet UITableView *tableViewReglements;
@property (weak, nonatomic) IBOutlet UITableView *tableViewActes;

@end

Dans l’implémentation, j’affecte le Delegate et le DataSource des TablesView :

-(void) viewDidLoad{
    [super viewDidLoad];
    
    tableViewActes.delegate = self;
    tableViewActes.dataSource = self;

    tableViewReglements.delegate = self;
    tableViewReglements.dataSource = self;
}

J’ai ensuite défini les différentes méthodes pour les tablesView, notamment :

 - (NSInteger)tableView:(nonnull UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
	NSInteger count;
    
	if (tableView == tableViewReglements) {
		count = [dossier.REGLEMENTS count];
	} else {
        count = [dossier.LISTE_ACTE count];
	}
	
	return count;		
}

	// Customize the appearance of table view cells.
 - (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {

	static NSString *reglementCell = @"ReglementCell";
	static NSString *acteCell = @"ActeCell";
	
	NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
	[dateFormatter setDateFormat:FORMAT_DATE];
	
	if (tableView == tableViewReglements) {
		
		ReglementCell *cell = [tableView dequeueReusableCellWithIdentifier:reglementCell];
		 if (cell == nil) {
			cell = [[ReglementCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reglementCell];
		}
        
        WS_WM_DossierReglement_V2 *reglement = [self.dossier.REGLEMENTS objectAtIndex:indexPath.row];
        
        NSString *modeReglement = @"";
        
        if ([reglement.LB_MODE isEqualToString:@"I"]) {
            modeReglement = [NSString stringWithFormat:@"Retenue d'indu sur le dossier n° %f", reglement.NO_DOS_INDU];
        } else {
            modeReglement = [NSString stringWithFormat:@"Virement sur compte %@", reglement.CO_IBAN];
        }
        cell.lblReglement.text = modeReglement;
        

		cell.lblMontant.text = [NSString stringWithFormat:FORMAT_MONTANT_EURO, reglement.MT_REGLE];
		
		return cell;
		
	}
    else if (tableView == tableViewActes) {
        
		ActeSommaireCellView *cell = [tableView dequeueReusableCellWithIdentifier:acteCell];
		if (cell == nil) {
			cell = [[ActeSommaireCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:acteCell];
		}
		
		WS_WM_ActeDossier_V2 *currentActe = [dossier.LISTE_ACTE objectAtIndex:(indexPath.row) ];
		
		cell.lblActe.text = currentActe.LB_ACTE;
		cell.lblDatePresation.text = [dateFormatter stringFromDate:currentActe.DT_ACTE];
		
		return cell;
		
	}	
    
    return nil;
}

Les données sont récupérées comme suit :

- (void)donnerListeActesDossier_V2FinishWithResults:(WS_WTActeDossier_V2 *)wtActeDossierV2 {
    NSString *msgErreur = [GestionErreur verifierCodeErreur:wtActeDossierV2];
    
    if (msgErreur.length > 0)
    {
        [GestionErreur afficherMessageErreurAvecTitre:titreAlertErreur avecMessage:msgErreur];
        return;
    }
    else {
        dossier = wtActeDossierV2;
        
        [tableViewActes reloadData];
        [tableViewReglements reloadData];
    }
}

Ce controller est ensuite ajouter dynamiquement au contenu d’une cellule d’un TableView d’un autre controller « RechercheDossiersViewController » dans la fonction « cellForRowAtIndexPath » :

static NSString *CellIdentifier = @"DetailDossierCell";
        DetailDossierRembouressementBeneficiaireCellView* cell = [self.tView dequeueReusableCellWithIdentifier:CellIdentifier];
        
        
        DetailsDossierViewController* detailController = [[DetailsDossierViewController alloc] init];
        [self addChildViewController:detailController];
        detailController.view.bounds = cell.contentView.bounds;
        [cell.contentView addSubview:detailController.view];
        [detailController didMoveToParentViewController:self];
        
        SMPrestation *prest = [[SMPrestation alloc] init];
        [prest donnerListeActesDossier_V2:detailController idMutuelle:[GlobalsObject sharedInstance].idMutuelle syDossierMut:dossier.SY_DOSSIER_MUT];
        
        return cell;

Le controller « DetailDossierViewController » est bien déclenché pour récupérer les données mais tous les outlet du controller sont « Nil », comme s’il manquait une instanciation.
La méthode « cellForRowAtIndexPath » n’est jamais appelée et donc ma liste ne se construit
pas…

Je pense qu’il y a un câblage mal fait quelque part mais j’avoue que je me perds un peu…

En espérant que quelqu’un puisse m’aider.

Cordialement,