2010-01-16 1 views
2

Je regarde l'exemple de projet "AdvancedTableViewCells" d'Apple, et en regardant le RootViewController, j'ai remarqué le chargement de la plume pour le IndividualSubviewsBasedApplicationCell. Je me posais des questions sur le chargement de la plume ... à quoi cela sert-il? Il n'y a pas de poignée/variable. Je comprends les lignes ci-dessous où la cellule est affectée à la vue via le IBOutlet, mais je ne comprends pas la ligne: [[NSBundle mainBundle] loadNibNamed:@"IndividualSubviewsBasedApplicationCell" owner:self options:nil];AdvancedTableViewCells d'Apple Question

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"ApplicationCell"; 

    ApplicationCell *cell = (ApplicationCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 

#if USE_INDIVIDUAL_SUBVIEWS_CELL 
     [[NSBundle mainBundle] loadNibNamed:@"IndividualSubviewsBasedApplicationCell" owner:self options:nil]; 
     cell = tmpCell; 
     self.tmpCell = nil; 

Répondre

3

Voir l'article de Jeff LaMarche Table View Cells in Interface Builder - the Apple Way™.

Dans le fichier NIB IndividualSubviewsBasedApplicationCell «propriétaire du fichier » est réglé sur RootViewController, et la coutume UITableViewCell est connecté à la tmpCellIBOutlet de RootViewController.

Dans la ligne:

[[NSBundle mainBundle] loadNibNamed:@"IndividualSubviewsBasedApplicationCell" owner:self options:nil]; 

... le chargeur bundle charge le fichier NIB et relie tous les points de vente. Une fois qu'il a fait cela, le tmpCellIBOutlet pointe maintenant à notre coutume UITableViewCell.