UITableViewCell のカスタム サブクラスを作成しました。1 つの viewController では、正常に動作します。別の例では、ラベルはデフォルト (@"Label" など) として表示されますが、必要なテキストがありません。あたかもコンセントが接続されていないかのようです。ただし、あるクラスでは問題なく動作し、それに応じてラベルが変更されます。
両方の ViewControllers で、viewdidLoad で次のことを行います。
[self.baseTableView registerNib:[UINib nibWithNibName:@"TargetDetailTableViewCell" bundle:nil] forCellReuseIdentifier:TargetCellIdentifier];
メソッドの上にあるViewControllerの両方の.mファイルには、次のものがあります。
static NSString *TargetCellIdentifier = @"TargetDetailTableViewCellIdentifier";
2 つのクラス間でこの文字列識別子を変更して、それが問題の原因であるかどうかを確認したことに注意してください。
次に、cellForRowAtIndexPath で、両方に対して同じことを行い、セルを取得します。
TargetDetailTableViewCell *cell = (TargetDetailTableViewCell *)[tableView dequeueReusableCellWithIdentifier:TargetCellIdentifier];
次に、両方で同じことを行い、次のようにします。
cell.descriptionLabel = @"test";
1 つの viewController では、descriptionLabel が変更されますが、別のビューでは変更されません。そのため、TargetDetailTableViewCell を標準の UITableViewCell に変更しようとすると、値がその UITableViewCell オブジェクトに正しく渡されます。cell.textLabel.text が割り当てられていることがわかりますが、この UITableViewCell を再利用しようとする 2 番目の viewController では機能しません。
異なる UIViewControllers の異なる UITableViews 間で UITableViewCell を再利用する際に欠けているものはありますか? ありがとう。