Contrôleur de vue de destination conditionnelle à partir de sections dans UITableView

Code dans le controller TableView

if ([segue.identifier isEqualToSsortingng:@"showListFiles"]) { NSIndexPath *ip = [self.tableView indexPathForSelectedRow]; if (ip.section == 0) { NSDictionary *currentBill = [[_response objectForKey:@"facturas_pendientes"] objectAtIndex:ip.row]; DkBPaymentViewController *pvc = [[DkBPaymentViewController alloc] init]; pvc = (DkBPaymentViewController *) segue.destinationViewController; pvc.setUp = currentBill; } else if(ip.section == 1){ DkBBillsFileTableViewController *ftvc = segue.destinationViewController; ftvc.filesList = [[[_response objectForKey:@"facturas_pagadas"] objectAtIndex:ip.row] objectForKey:@"archivos_facturas"]; } } 

Erreur

 -[DkBBillsFileTableViewController setSetUp:]: unrecognized selector sent to instance 0x85a3b00 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DkBBillsFileTableViewController setSetUp:]: unrecognized selector sent to instance 0x85a3b00' 

Comment pouvez-vous faire ou quel est le meilleur moyen de se connecter conditionnellement à différents controllers de vue en fonction de la section de la section du tableau (Section 1 À payer / Section 2 Payée)?

Détails

DkbPaymentViewController a son propre xib étant donné que je ne peux pas faire la cellule prototype pour pointer vers deux différents

DkBBillsFileTableViewController est la section originale que j'ai déclarée

Merci beaucoup d'avance, je crois que find une bonne méthode de segue conditionnelle dans une vue de table serait bénéfique à tous.

Vous devez configurer 2 cellules différentes, chacune liée à des séquences distinctes (donc elles ont des identifiants différents), et chacune pointant vers des controllers de vues différents. Cela rendra votre code sortingvial, évitera la confusion entre les classs et utilisera les segments comme ils sont destinés.

Vous pouvez le faire par programme. Dans le storyboard, dessinez vos deux segues depuis le controller de vue (plutôt que depuis la cellule). Ensuite, dans didSelectRowAtIndexPath , faites quelque chose comme ceci:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0) { [self performSegueWithIdentifier:@"SegueForSection1" sender:indexPath]; } else if (indexPath.section == 1) { [self performSegueWithIdentifier:@"SegueForSection2" sender:indexPath]; } }