UITableViewスクロールが必要なほどの高さがあります。テーブルの一番上のセルにはUITextField、ユーザーがテキストを入力するための が含まれています。
これを構築する標準的な方法は、テキスト フィールドを作成して追加し、作成または再利用されたセルに追加することです。cellFOrRowAtIndexPath:ただし、この一定の再作成は、セルがスクロール アウトして戻ると、フィールドに入力されたテキストが消去されることを意味します。見えます。
私がこれまでに見つけた解決策では、UITextField委任を使用してテキストの変更を追跡し、iVar またはプロパティに保存することを提案しています。私が使用しているより単純なアプローチではなく、これが推奨される理由を知りたいです。
UITextFieldの init メソッドで を作成しUITableViewController、すぐにプロパティに格納しています。新しいフィールドを初期化するのではcellFOrROwAtIndexPathなく、既存のフィールドを追加するだけです。セル自体は問題なくリサイクルできますが、いつもオンリーワンを使っているのでUITextField中身は保たれています。
これは合理的なアプローチですか?何が問題になる可能性がありますか?改善点 (おそらく、フィールドを作成することはできますcellForRowAtIndexPathが、最初にプロパティが nil かどうかを確認できますか?)