0

ここで何が起こっているのかわかりませんが、iOS 6 より前では、ストーリーボードを使用して UITableViewCell サブクラスを作成していました。

1) アウトレット用に作成された UITableViewCell サブクラス .h および .m。2) ストーリーボードの ViewController で作成されたカスタム UITableViewCell。その ID を Custom UITableViewCell に変更します。再利用識別子名を付けます。

次に、セルをインスタンス化する場合は、ViewController のクラスで

static NSString *TotalDistanceCellIdentifier = @"TotalDistanceCellIdentifier";

ビューでDidLoad:

[self.tableView registerNib:[UINib nibWithNibName:@"TotalDistanceTableViewCell" bundle:nil] forCellReuseIdentifier:TotalDistanceCellIdentifier];

次に cellForRowAtIndexPath で:

    TotalDistanceTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TotalDistanceCellIdentifier];

    return cell;

iOS 5 および 5.1 では、UITableViewCell が表示されます。しかし、iOS 6 または iOS 6 シミュレーターを実行している私の iPhone では、次のようにクラッシュします。

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:.....with name 'TotalDistanceTableViewCell''

iOS 6 の UItableViewCells で何か変更がありましたか? ありがとう!

4

1 に答える 1

2

あなたが説明する方法は決して正しくありません。以前は機能していた場合、例外が新しい可能性があります。

別の nib ファイルがある場合にのみ、nib を登録します。ストーリーボード内のプロトタイプの場合、再利用識別子を使用してデキューするだけで、tableView がプロトタイプから新しいセルを作成します。

registerNib 行を削除するだけで問題ありません。

于 2012-10-15T06:17:13.007 に答える