Comment obtenir le cell.textLabel.text de la cellule sélectionnée dans DetailViewController?

StackOverflow https://stackoverflow.com/questions/2312357

Question

J'ai un UITableView avec plusieurs entrys, et ceux-ci sont répartis dans plusieurs sections. Si je clique sur l'une des cellules, un DetailViewController est accessible. Dans ce DetailViewController, je veux utiliser les données de la cellule sélectionnée (le cell.textLabel et le cell.detailTextLabel), mais je ne peux pas accéder. Est-il possible de résoudre le problème pour que je puisse accéder aux textLabels des cellules sélectionnées avec le DetailViewController?

Était-ce utile?

La solution

Une façon est d'ajouter des propriétés à DetailViewController pour les deux valeurs de texte. Puis, en didSelectRowAtIndexPath, faire quelque chose comme ceci:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    //create your DetailViewController here
    UIViewController *detailViewController = ...

    //set the properties...        
    detailViewController.cellText = cell.textLabel.text;
    detailViewController.cellDetailText = cell.detailTextLabel.text;

    //push the detailViewController here

    [detailViewController release];
}

Autres conseils

Initialisez le DetailViewController avec le contenu cellulaire.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    DetailViewController *detailViewController = [[[DetailViewController alloc] initWithText:cell.textLabel.text] autorelease];
    // push
}

Au lieu de l'enfant à lire à partir de son parent, il beaucoup plus propre que le parent fournissent les informations directement à son enfant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top