J'ai une vue de table avec quelques éléments (tout le texte). Lorsque l'utilisateur clique sur la ligne, je souhaite que le texte de cette cellule soit ajouté à un tableau.
Comment extraire le texte de la cellule?
J'ai déjà:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
Existe-t-il une ligne simple que je peux utiliser pour extraire le texte de la cellule sur laquelle l'utilisateur clique?
Utilisez UITableView
's cellForRowAtIndexPath:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = cell.textLabel.text;
}
C'est l'inverse de ce que vous avez fait dans cellForRowAtIndexPath.
[myArray addObject: [datasource objectAtIndex:indexPath.row]];
En général, vous pouvez trouver la plupart des réponses à des questions comme celle-ci dans la documentation Apple. Pour ce cas, regardez sous ITableView Class Reference et vous verrez un en-tête de section: Accès aux cellules et aux sections. Cela vous donne la méthode suivante:
– cellForRowAtIndexPath:
Maintenant, utilisez ceci pour accéder à la cellule, puis utilisez récupérer le texte de la cellule (si vous ne savez pas comment, regardez sous le ITableViewCell Class Reference .
Dans l'ensemble, votre méthode pourrait ressembler à ceci:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = cell.textLabel.text;
[myArray addObject:cellText];
}
Ma première supposition serait d'obtenir l'index, [ligne indexPath]; puis récupérer les données de votre source de données (un tableau ou des données de base) plutôt que directement à partir de la table elle-même.
Version Swift:
let cell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
let cellText: String = cell.textLabel.text