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

Il y a un code à partir d'un exemple d'Apple d'utiliser votre propre « XIB cellulaire personnalisée » pour créer des cellules dans un UITableView.détection lorsque le bouton détail de la divulgation d'une cellule a été cliqué (lorsque vous utilisez un XIB cellulaire personnalisé)

Il semble fonctionner ... mais je pense que je ferais mieux de réellement comprendre ce qui est fait là.

  • Pourquoi pas ce qui suit l'attribution de la valeur - quelque chose?

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

    (En fait, cell et tvCell ne sont pas utilisés du tout.)

  • Pourquoi la ligne n ° 4 en utilisant tvCell quand assignation rien n'a été mis en tout, encore?

  • Pourquoi la ligne 5 annule-t-elle le tvCell dont j'ai besoin?

  • Pourquoi cette ligne utilise-t-elle assign, pas retenue?

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

La seule chose que je ne peux pas travailler est correctement quand je mets une divulgation bouton sur mon portable de XIB au catalogue personnalisé. Y a-t-il un moyen pour moi de détecter quand l'utilisateur a cliqué dessus? (Espérons, sans utiliser 100s de TAGs.)

Répondre

21

Je n'ai pas joué avec XIBs pour les cellules, mais je ne vois pas pourquoi vous ne pourriez pas encore utiliser tableView:accessoryButtonTappedForRowWithIndexPath:.

+0

Cela fonctionne très bien :) – willcodejavaforfood

Questions connexes