2010-04-22 4 views
6
if (cell == nil)  // 1 
{      // 2 
    [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil]; // 3 
    cell = tvCell;  // 4 
    self.tvCell = nil; // 5 
}      // 6 

C'è qualche codice da un esempio di Apple di utilizzare il proprio "XIB cella personalizzato" per creare le cellule in un UITableView.rilevare quando il pulsante dettaglio divulgazione di una cella è stato fatto clic (quando si utilizza un XIB cella personalizzato)

Sembra funzionare ... ma penso che farei meglio effettivamente a capire cosa viene fatto lì.

  • Perché non è la seguente assegnando il valore - qualcosa?

    cell = [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil]; 
    

    (In realtà, cell e tvCell non sono in uso a tutti.)

  • Perché linea # 4 assegnazione usando tvCell quando nulla è stato messo in a tutti, ancora?

  • Perché la riga n. 5 annulla lo tvCell di cui ho bisogno?

  • Perché questa linea utilizza assegnare, non conservare?

    @property (nonatomic, assign) IBOutlet UITableViewCell *tvCell; 
    

Circa l'unica cosa che non riesco a lavorare in modo corretto è quando ho messo un pulsante informativa sulla mia XIB cella personalizzato. C'è un modo per me di rilevare quando l'utente ha cliccato su di esso? (Si spera, senza utilizzare 100 di TAG.)

risposta

21

Non ho giocato con XIBs per le celle, ma non vedo perché non si possa ancora usare tableView:accessoryButtonTappedForRowWithIndexPath:.

+0

Funziona bene :) – willcodejavaforfood