Domanda

Ho un UITableView con diversi entrys, e questi sono suddivisi in diverse sezioni. Se clicco su una delle celle, un DetailViewController si accede. In quel DetailViewController, voglio utilizzare i dati dalla cella selezionata (il cell.textLabel e la cell.detailTextLabel), ma non posso accedere a questi. C'è la possibilità di risolvere il problema in modo da poter accedere ai textLabels dalle celle selezionate con il DetailViewController?

È stato utile?

Soluzione

Un modo è quello di aggiungere oggetti da DetailViewController per i due valori di testo. Poi, nel didSelectRowAtIndexPath, fare qualcosa di simile:

- (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];
}

Altri suggerimenti

inizializzare il DetailViewController con il contenuto della cella.

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

Al posto del bambino che legge dal suo genitore, molto più pulita di avere il genitore fornire informazioni direttamente al suo bambino.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top