0

私はiOS開発が初めてで、のcellForRowAtIndexPath方法に問題がありUITableViewます。

私のアプリケーションでは、複数の行がありUITableViewます。各行を見たいときは、明らかにスクロールする必要UITableViewがあり UITableViewます。DataBase に UITextField の値を追加すると正常に動作しますが、DataBase に値を編集してTextField の値を追加すると、問題が発生します。UITextFieldUITableViewCellUITextField

問題:- TextField のすべての編集可能な値を DataBase に追加したい場合はUITableView、上下にスクロールする必要があります。スクロールしないと、目に見えない TextField はデータベースに追加されません:(ここで、私のアプリケーションでは、追加と編集は、UIViewController渡した ID に基づいて同じベースにあります。

cellForRowAtIndexPathグーグルによって、すべての行に対して呼び出されていないこともわかりました。表示されている行に対してのみ呼び出され、ユーザーがスクロールすると追加の行に対して呼び出されます。古い行も画面から消えると破棄され、ユーザーが上にスクロールすると再びセルが要求されます。

どうすれば私の問題を解決できますか?

私の問題をより簡単に理解するために編集してください:

例えば ​​:

私は2つのUIViewControllerを持っています。

1 - FirstViewController 2 - SecondViewController

FirstViewControllerName のすべてのリストを表示し、 Name を選択UITableViewするかUITableView、 BarButton をタップして新しいデータを追加する 2 つの選択肢がUINavigationBarあります。データ (または値) Add bySecondViewControllerは正常に動作していますが、FirstViewController から任意の行 (または名前) を選択すると、関連する ID が渡されSecondViewController、すべての情報が ID に基づいて TextField に表示されます。ここでは、すべての値が DATABASE から取得されNSMutableDictionary、それを保存してから、Dictionary の KEY にアクセスして textField に保存します。ただし、値は表示される TextField に格納されます。目に見えない TextField は、 DATABASE から取得しても値を保存しません。そのため、最初に UITableView をスクロールする必要があります。

前もって感謝します :)

4

1 に答える 1

0

次に、以下のように実装します

データベース値を取得して保存し、インターフェイスまたはファイルNSMutableDictionaryで宣言することでアクセスできます。.h

tableView次に、またはtextFieldロードするたびに、辞書から値を読み取って表示します。

そして、textFieldDidEndまたはtextFieldDidChangeデリゲートtextFieldで、同じキーを使用して辞書に保存/保存してデータを取得します。今回は、ご存知のように古い値を置き換えるだけです。

backAction最後に、すべての辞書値をorviewWillDisappearメソッドのデータベースに保存します。

私に知らせなければ、これはあなたのために働くはずです。

于 2012-09-26T17:41:48.623 に答える