2017-12-18 7 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

は、私はあなたがそれを使用するのが好ましいので

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

であなたのセルにあなたのXIBを割り当てるために使用されるセル識別子とTableviewcell

登録ペン先用登録のペン先と混同していると思いますこの行はあなたのviewControllerのViewDidLoadにあります。

そしてCellIdentifierが使用されています。表のビューのように、 ipleの細胞の種類は、ので、それらを識別するために、テーブルビューは、あなたがあなたの問題を解決し、以下の方法

- (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; 

希望を使用することができ、CellReuseIdentifier

あなたは、テーブルビューのセルを登録するとを使用していました。

1

確認再利用識別子同じ場所の両方を作成し、あなたはあなたが使用したバンドルに

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

itemCell.xibを持っている必要がありのviewDidLoad

をこの行を追加します。ペン先名はitemCellですが、これはおそらく間違っています。通常は、すなわち

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

ありますが、クラスと同じニブに名前を付けるという要件はませんので、何をチェックし、あなたがペン先という名前のことをロードする必要があることを意味する、それをバックアップするクラスと同じあなたのペン先に名前を付けますファイル名はあなたのペン先のものですが、HomeRestuTableViewCell.xibの場合、それはあなたのメインバンドルにあります。上記の登録はエラーを修正するはずです。

関連する問題