Déplacer les lignes vers le bas dans un TableView qui utilise CoreData

Dans mon application, j'ai un dossier-dossier (relation un-à-plusieurs). Ainsi, quand j'ouvre mon application, mon FirstViewController contient tous les files et quand on clique sur chaque dossier, il ouvre un tableauViewController affichant les files dans ce dossier.

Maintenant, ici, chaque fois que je balaye une rangée, elle est déplacée vers la rangée du bas et la table est mise à jour en conséquence, la prochaine ligne balayée ira s'asseoir au-dessus de la première rangée balayée.

Par exemple, actuellement si ma table contient

0 1 2 3 ABCD 

Après avoir balayer A

 0 1 2 3 BCD **A** 

après avoir balayer B

 0 1 2 3 CD **BA** 

etc,

Pour faire cette fonctionnalité, je devrais mettre à jour le NSOrderedSet également qui est montré ci-dessous

 for (int i = 0; i < [self.folder.file count]; i++) { File *file = [self.folder.file objectAtIndex:i]; if(file.completedStatus == false) { m_position = i; m_finalIndexPath = [NSIndexPath indexPathForRow:i inSection:0]; } } file.completedStatus = YES; id obj = [self.folder. file objectAtIndex:row]; NSMutableOrderedSet *files = [self.folder.file mutableCopy]; [files removeObjectAtIndex:row]; [files insertObject:obj atIndex:m_position]; NSIndexPath *currentIndexPath = [NSIndexPath indexPathForRow:row inSection:0]; [m_tableView moveRowAtIndexPath:currentIndexPath toIndexPath:m_finalIndexPath]; self.folder.file = files; } [self.managedObjectContext save:nil]; [m_tableView reloadData]; 

Cela fonctionne très bien dans cette vue, et ici self.folder, est un dossier particulier sur lequel l'user clique

Maintenant, j'ai un autre ViewController appelé TestViewController où j'ai certains des objects de file indépendamment du dossier dans lequel ils sont présents. J'ai peuplé la table de ce TestViewController avec ces files, Maintenant ici aussi, quand je balaye les cellules, elles changeront la couleur mais ne bougeront pas leur position comme ci-dessus

Par exemple

 0 1 2 3 ACBD after swiping A and B 0 1 2 3 **A** C **B** D 

Maintenant, ici, A peut appartenir au dossier 1 et B peut appartenir au dossier 2,

quand je ferme (rejeter) ce TestViewController, ce qui devrait arriver est que

a) il me montre le file fileController par défaut b) la couleur du file A devrait changer et il devrait se déplacer vers une position en vérifiant s'il y a déjà des cellules balayées. Si oui, il devrait être placé au-dessus ou en bas.

c) de même pour la couleur B.

Cordialement Ranjit.

Ranjit,

A propos de votre question Je ne comprends pas ce que vous requestz ici. Alors, s'il vous plaît fournir quelques autres détails.

Pour connaître le dossier auquel appartient un file spécifique, c'est assez simple à réaliser.

Si vous avez configuré une relation inverse entre un file et un dossier, accédez simplement à cette relation.

Par exemple, si la relation inverse est appelée toFolder , vous pouvez récupérer le dossier actuel comme

 Folder* currentFolder = currentFile.toFolder; // or access it through KVC 

Pour créer une relation inverse, regardez ici: La structure de données de base utilise plusieurs entités ou non?