2010-11-20 18 views
0

私は、各セルにユーザーが入力するテキストフィールドを持つテーブルビューを持っています。テーブルビューのテキストフィールドを持つIphoneセル

データが有効かどうかを確認するために、ユーザーがボタンを押してフィールド内のすべてのテキストを取得したい場合があります。しかし、私はどのように各セルのテキストフィールドを取得するのか分からない。

ありがとうございます!

答えて

2

データのバッキングストアとしてセル+テキストフィールドを使用することはお勧めできません。その理由は、ユーザーがリストをスクロールするときに、UITableViewがそれらのセルをリサイクルするからです。これを確実に行うための唯一の方法は、各セルを一度割り当て/初期化し、アレイ内でそれらをすべて管理する場合です。そこから、tableviewがcellForRowAtIndexPath:を呼び出すときに正しいセルを取得します。しかし、多くの行がある場合、これは悪い考えです。行数が少なければ良いアイデアかもしれませんし、配列をたどって各セル/テキストフィールドにアクセスするだけでも構いません。

それ以外の場合は、任意のセルでフィールドの内容が変更されたときにキャプチャするテキストフィールド委譲メソッドを実装する必要があります。そうしたとき、フィールドの内容を取得して、その値をバッキングストアに格納することができます。 textFieldタグを行インデックスに設定することをお勧めします。これは、デリゲートメソッドが呼び出されたときにどのtextFieldが更新されているかを簡単に知る方法です。

+0

'-reloadRowsAtIndexPaths:withRowAnimation:'のようなことをすれば、UITableViewは2つの異なるセルを必要とするので、1つをアニメーション化し、もう1つをアニメーション化できます。 –

関連する問題