0

静的および編集可能なテキスト用のカスタム セルを持つ UITableViewController があります。標準的なもので、派手なものはありません。

セル データは、セルが再利用されるときにデータがセル内に戻されるように格納されます。

問題は次のとおりです。ユーザーが UITextField セルにカーソルを置き、キーボードを上に向けると、キーボードがテーブル ビューの 3 つの行を覆っています。ビューコントローラを閉じるはずのビューコントローラの上部にキャンセルボタンがあります。私がdismissModalViewControllerを呼び出すと、キーボードは非表示になりますが、UITableViewControllerは、ビューが消えている間、キーボードの下にあった行を更新したいと考えています. ただし、ビューはすでに死に瀕しており、テーブル ビューが cellForRowAtIndexPath を呼び出して削除中の行を更新しようとしているため、クラッシュします。

キーボードが隠れるのを待ってみました。ダメ。

最初のレスポンダーを辞任して、キーボードが消えて最初に行を更新してからビューコントローラーを閉じようとしましたが、データの更新が完了したことを示すものは何も見つかりませんでした。

私が必要としているのは、テーブルの更新が終了したことを通知するイベント、またはデリゲートからのデータを要求しないようにテーブル ビューに通知するイベント、またはキーボードが消えたときにテーブル ビューを更新しないように通知するイベントです。

または、私が見逃している単純なものがあります。

何か助けはありますか?

4

2 に答える 2

0

セルがこれ以上ない場合は、セルごとに異なる再利用可能な識別子を作成することをお勧めします。キューから取り出された後にセルの状態を保存することをお勧めします

于 2013-02-21T22:26:15.083 に答える
0

私は自分の問題を解決しました。cellForRowAtIndexPath 内で、存在しなくなった可能性のあるポインターの UITextField 内にテキストを設定していました。問題を解決するために私がしたことは、セルを作成することでしたが、その中にテキストを設定する前に、[キャンセル] ボタンが押されたかどうかを確認し、押された場合は空のセルを返しました。

セルの更新が完了するのを待つなど、より良い解決策があることを望んでいましたが、それは起こっていないようです.

于 2013-02-21T23:09:38.253 に答える