-3
votes

Comment obtenir la liste des lignes de checkemark-ed dans la TableView Swift?

J'ai activer la sélection multi-lignes et je suis capable d'ajouter des coches lorsque l'utilisateur touche les cellules spécifiques. Maintenant à la fin, je veux voir quelles lignes étaient sélectionnées et effectuer des actions en fonction des numéros de ligne. Comment puis-je obtenir ces détails / chiffres de ligne? Merci!

code utilisé pour sélectionner / désélectionner des lignes: p> xxx pré>

puis dans le contrôleur de cellule: p>

 override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        accessoryType = selected ? UITableViewCell.AccessoryType.checkmark : UITableViewCell.AccessoryType.none
    }


0 commentaires

3 Réponses :


0
votes
let rows = self.main_table.indexPathsForSelectedRows.map { $0.row }

2 commentaires

J'ai mis cette déclaration dans un bloc d'impression et obtenu: facultatif ([[0, 0], [0, 1], [0, 2]]). Comment puis-je obtenir juste les rangées? J'ai regardé sur le lien ne pouvait rien trouver


Pour obtenir uniquement les lignes, vous pouvez exécuter cela à travers une carte: laisser des lignes = self.main_table.indexpathsforselectedwows? .Map {$ 0.row}



-1
votes

@Pradaclawed. Lorsque vous sélectionnez Cell ON DISSELLECT Méthode Vous pouvez ajouter indexPath.row ou des données de ligne sélectionnées dans la matrice et supprimez lorsque désélectionne . Maintenant, vous pouvez travailler sur les données sélectionnées sur la cellule .


0 commentaires

2
votes

Tout d'abord, évitez d'utiliser Staminscore ( _ code>) notation em> pour déclarer les variables dans Swift em>. Utilisez plutôt casage de chameau em>. xxx pré>

Suivant, pour obtenir juste les lignes code> du code> du indexPays code> dans le TableView code>, utilisez indexpathsforselecteRows code> strong> et map (_:) code> strong> comme SO, P>

if let selectedRows = self.tableView.indexPathsForSelectedRows?.map({ $0.row }) {
    print(selectedRows)
}


0 commentaires