カスタムサブビューを介してセルが作成される(各セルにラベルとテキストフィールドがあるように)UITableViewを含むViewControllerがあります。サブビューには、textFieldDidBeginEditing、textFieldDidEndEditingなどで呼び出されるTextFieldデリゲートメソッドが含まれます。UITableViewは、表示されているセルをキャッシュし、セルが表示されなくなったときに破棄します。私が持っている問題は、ユーザーがセル内のTextFieldをタップしてから、テーブルをスクロールして「編集中」のセルが表示されていない状態にしてから、新しいセルをタップして元のセルのtextFieldDidEndEditingデリゲートメソッドが表示された領域からスクロールされたときに元の/最初のTextFieldがUITableViewによって破棄されたため、「respondsToSelector:]:メッセージが割り当て解除されたインスタンスに送信されました」というエラーが発生しました。UITableView with custom cell subview - respondsToSelector:]:メッセージが割り当て解除されたインスタンスに送信されました
これまで誰もがこの問題に対処していましたが、私のtextFieldDidEndEditingメソッドを保持して、目に見えないセルを破棄せずにデータを正しく入力できるソリューションを見つけましたか?
EDIT:これはUITableViewクラスリファレンスドキュメントで見つかりました:「コンテンツの再レイアウトを避ける」カスタムのサブビューでセルを再利用する場合は、テーブルビューがセルを要求するたびにレイアウトを控えてください。 、セルが作成されるとき。
これは私の問題の根本だと思います。しかし、私はこのアドバイスに従う方法がわかりません。ヘルプ...
最終的に解決策が見つかりましたか? –
私のケースでは、単純にニブに指定された再利用識別子を持たないことが、セルの割り当て解除を引き起こしていたことがわかりました、ios6はこれを許していましたが、ios7はありません –