UITableViewController moveRowAtIndex
Bonjour, j'ai une simple question a vous poser,
tout d'abord j'override la fonction suivante:
func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath)
je voulais savoir, lorsque nos cellules (sachant que mes cellules affichent les mots provenant d'un tableau) changent d'ordre, si le view controller sais ou se trouve chaque cellules automatiquement (i.e il update la place des cellules sans que je le vois ?) ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je n'ai jamais utilisé cette méthode. D'après ce que j'ai compris, elle est appelée automatiquement par la tableView quand l'utilisateur modifie manuellement la position d'une cellule. Comme par exemple un rendez-vous dans la case 11h, déplacée à 15h. Elle n'a rien a voir avec l'affichage des cellules. C'est juste un message indiquant que le contenu de la data source (ton tableau) doit être modifié pour tenir compte de l'action de l'utilisateur.
Les paramètres sourceIndexPath et destinationIndexPath indiquent l'ancienne et la nouvelle valeur de la cellule (11h glissant à 15h dans mon exemple).
Le viewController ne sais jamais où se trouve les cellules. Seule la tableView connait cette information en interne. Le viewController ne sert qu'à faire la jonction entre la tableView, son délégué et la data source.
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDataSource_Protocol/index.html#//apple_ref/occ/intfm/UITableViewDataSource/tableView:moveRowAtIndexPath:toIndexPath:
Par exemple, si chaque cellule représente un objet Plat, alors du dois réordonner le Plat dans la liste.