2017-12-18 258 views
0

I無法加載與tableviewcell類一起作爲.xib使用的uitableviewcell。請提前幫助我。無法在名稱爲'itemCell'的包中加載NIB

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *cellId = @"itemCell"; 

    NSDictionary *dictDetailList = [_arrItemList objectAtIndex:indexPath.row]; 

    HomeRestuTableViewCell *cell = (HomeRestuTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellId]; 

    if(!cell) { 
     [tableView registerNib:[UINib nibWithNibName:@"itemCell" bundle:nil] forCellReuseIdentifier:cellId]; 
     cell = (HomeRestuTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellId]; 
    } 
    [cell setupHomeRestuCell:dictDetailList]; 

    return cell; 
} 
+0

你收到了什麼錯誤?你是如何創建你的tableView? –

+1

基本上從不在'cellForRow ...'中註冊單元格' – vadian

回答

1

我認爲你是混淆小區標識和Tableviewcell

註冊筆尖註冊筆尖用於您的廈門國際銀行分配給你的細胞在

[tableView registerNib:[UINib nibWithNibName:@"HomeRestuTableViewCell" bundle:nil] forCellReuseIdentifier:cellId]; 

所以最好使用viewController的ViewDidLoad中的這一行代碼

和CellIdentifier用於標識單元格的類型,如表格視圖中可以有多個IPLE類型的細胞,所以要識別它們,TableView中使用CellReuseIdentifier

一旦你爲你的表視圖寄存器單元,您可以用下面的方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *cellId = @"itemCell"; 

NSDictionary *dictDetailList = [_arrItemList objectAtIndex:indexPath.row]; 

HomeRestuTableViewCell *cell = (HomeRestuTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellId]; 

if(!cell) { 

    cell = [[HomeRestuTableViewCell alloc] initWithStyle: UITableViewCellStyleSubtitle reuseIdentifier: cellId]; 

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
} 
[cell setupHomeRestuCell:dictDetailList]; 

return cell; 

希望能解決你的問題。

1

加入這一行viewDidLoad中

確保重用標識符都一樣的地方,你應該有itemCell.xib組合中的

[tableView registerNib:[UINib nibWithNibName:@"itemCell" bundle:nil] forCellReuseIdentifier:@"itemCell"]; 
0

您已經使用nib名稱itemCell,可能是錯誤的。通常,您可以命名自己的筆尖一樣其支持它的類,這意味着你需要加載一個名爲筆尖,即

[tableView registerNib:[UINib nibWithNibName:@"HomeRestuTableViewCell" bundle:nil] forCellReuseIdentifier:cellId]; 

有你的名字筆尖一樣的類,所以檢查不要求什麼文件名是用於你的筆尖,但如果它是HomeRestuTableViewCell.xib,並且它在你的主包中,上面的註冊應該爲你解決錯誤。

相關問題