0

状況を簡単にまとめると、次のようになります。

多数のセルを持つ TableViewController があります。セルの 1 つに UITextField があります。このセルは、カスタム UITableViewCell クラスのものです。このクラスは、UITextFieldDelegate プロトコルとメソッドを実装します。 メソッドtextFieldDidEndEditing:textFieldDidEndEditing:で、TextField の値を CoreData に格納します。

これはすべてうまくいきます。

私の質問は、TableView のリロードに関するものです。

ユーザーの特定のアクションの後、呼び出して UITableView のデータをリロードします。[self.tableView reloadData] このメソッドを呼び出すと、上記の TextField が最初の応答者であり、textFieldDidEndEditing:メソッドが呼び出され、CoreData 関連のコードが実行されます。

TableView がリロードされているとき、カスタム TabelViewCell で何も実行したくありません。TableViewCell が TableView がリロードされていることを認識できる方法はありますか? textFieldDidEndEditing:メソッド内でこれを確認できますか?

とりあえず以下の方法で解決しました。

この TableViewCell が作成されているときに、ViewController に参照を保存させます。呼び出す前に、メソッド 内でこのプロパティを確認[self.tableView reloadData]するカスタム プロパティを設定して、まず Cell に通知します。_cell.tableWillReload = YEStextFieldDidEndEditing:

私は、TableViewCellsが周囲のTableViewをリロードしていることを知るための、別のよりデフォルトの方法があるのではないかと考えていましたか?

4

1 に答える 1

0

これを試して :-

[yourTextFieldOfCell resignFirstResponder];

電話する前に[self.tableView reloadData];

于 2012-12-21T10:46:40.807 に答える