セルは tableView で動的に行き来します。それらを使用して値を保存すると、気が狂ってしまいます。可変配列を使用してデータを保存し、セルに必要なものを提供することをお勧めします。
3つの簡単なステップで解決できます。
1、1 つの UITableCell をサブクラス化し、すべてのプロトタイプ セルに使用します。セル サブクラスで行う必要があるのは、セル内のすべての要素のすべてのプロパティを設定することです (そして、.m ファイルでそれらを合成します)。
2. IB で、すべてのセルのクラスを作成したばかりの UITableCell サブクラスとして設定します。これが重要な部分です。IB では、リンクしたい要素 (そのセル内) にセルからコントロールドラッグします。 . これは、ステップ 3 が機能するために不可欠です。
3、UITableViewControllerのcellForRowAtIndexPath:メソッドで、セルのサブクラスを使用し、必要なものにtableViewのインデックスを付けてタグ付けします(セルのメソッド呼び出しで取得します)。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellOneID = @"CellOne";
MySubclassTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
cell.textFieldOne.tag = indexPath.row;
cell.textFieldOne.delegate = self;
cell.labelTwo.text = [myMutableArray objectForIndex:indexPath.row];
cell.labelTwo.tag = indexPath.row;
return cell;
}
配列内の対応するオブジェクトを変更してから呼び出すことにより、ラベル テキストを変更できます。
[self.tableView reloadData];
次に、何かが起こっていることを示すために textField が呼び出されると、そのタグをチェックして、それがどれであるかを知ることができます。(もちろん、VC で UITextField デリゲート メソッドを実装することによって)