2013-03-12 6 views
7
static NSString *cellIdentifier = @"cell"; 
if (tableView ==tableview1) 
{ 
    ContactCustom *cell1=(ContactCustom *) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];   
    if (cell1 == nil) 
    { 
     [[NSBundle mainBundle] loadNibNamed:@"ContactCustom" owner:self options:nil]; 
     cell1 = contactCustom; 
    } 
} 

Wie vor dem Aufruf cellForRowAtIndex Methode nib Namen in viewDidLoad Methode registrieren?Register nib Namen für Tableview

Antwort

0
static NSString *cellIdentifier = @"cell"; 
if (tableView ==tableview1) 
{ 
    ContactCustom *cell1=(ContactCustom *) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];   
    if (cell1 == nil) 
    { 
     cell1 = [tableview dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath]; 

    } 
} 
+0

immer Unbekannter Selektor an Instanz Fehler gesendet – user2134883

+0

Haben Sie überprüfen dass xib ordnungsgemäß mit Klasse und Identifier verbunden ist p roper set in xib und verwenden Sie den folgenden Code cell = [tableview dequeueReusableCellWithRuseIdentifier: cellIdentifier forIndexPath: indexPath]; – Wish

+0

sollte Zelle in Identifier-Eigenschaft in der ContactCustom-Klasse sein – user2134883

1

von Apple zur Verfügung gestellt Register nib Verfahren für UITableView nach IOS 5 Bitte überprüfen Klassenreferenz http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html

Ex:

 In view did load you can register nib for UITableView like below 
    [tableView registerNib:[UINib nibWithNibName:@"nibName" bundle:nil] forCellReuseIdentifier:@"identifienName"]; 

     In cellForRowAtIndexPath 
     cell = [tableView dequeueReusableCellWithIdentifier:@"identifienName"]; 
+0

Fehler erhalten.Wie kann dieser Code für TableView mit customCell geändert werden – user2134883

+0

Welchen Fehler erhalten Sie? – Narayana

+0

*** Beenden der App aufgrund der nicht abgefangenen Ausnahme 'NSUnknownKeyException', Grund: '[ setValue: forUndefinedKey:]: Diese Klasse ist für den Schlüssel contactCustom nicht schlüsselcodefähig. – user2134883

0
// First of all Declare an IBOutlet for your customCell in Your View Controller 
IBOutlet ScoreCell *scoreCell; 
// Synthesize it. 
// Assign your view controller class to File Owner of your custom cell (Eg. File Owner of ScoreCell.xib) 
// Then Assign Reference Outlet of ScoreCell.xib with Object 'scoreCell' 
// Finally Create your custom Cell as follow : 

ScoreCell *cell = (ScoreCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
if (cell == nil) { 
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil]; 
    cell = [nib objectAtIndex:0]; 
} 
0

Registriert ein Objekt nib eine Zelle der Tabelle enthält, Sicht unter einer angegebenen Kennung.

- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier 
Parameters 

nib A nib Objekt, das die Feder-Datei zu verwenden gibt die Zelle zu erstellen. Dieser Parameter darf nicht Null sein. Kennung Die Wiederverwendungskennung für die Zelle. Dieser Parameter darf nicht null sein und darf keine leere Zeichenfolge sein.

Diese doc kann Ihnen helfen, eine Menge

+0

Kannst du mir ein Beispiel geben? – user2134883

17
(void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UINib *cellNib = [UINib nibWithNibName:@"cell" bundle:nil]; 
    [self.tableView registerNib:cellNib forCellReuseIdentifier:@"cell"]; 
} 
+0

Dies ist die richtige Antwort, nachdem ich mich stundenlang mit dem gleichen Problem herumgeschlagen habe und alles andere versucht habe, was das Problem behoben hat. Danach können Sie die "if" -Anweisung von der cellForRowAtIndex-Methode entfernen – Chris

0

Siehe hier: http://mrmaksimize.com/Custom-UITableViewCell-With-NIB/

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     [self.tableView registerNib:[UINib nibWithNibName:@"EXCustomCell" 
          bundle:[NSBundle mainBundle]] 
      forCellReuseIdentifier:@"CustomCellReuseID"]; 
    } 

Später Code:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"CustomCellReuseID"; 
    EXCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    // Configure the cell... 
    [cell.cellItemImage setImage:[UIImage imageNamed:@"glyphicons_428_podium"]]; 
    [cell.cellItemLabel setText = @"Mr Burns."]; 
    return cell; 
} 
Verwandte Themen