2011-02-04 8 views
1

みんな、次の問題のためにクリーンでシンプルな解決策を見つけられませんでした。私は実装したUITextFieldCustomCellを使用するUITableViewControllerビューを持っています。カスタムセルが表示されず、indexPathを使用してセルを取得したい場合の対処方法

テーブルには複数の行があり、ユーザーは各セルの入力値を下にスクロールする必要があります。各セルには、UILabelとUITextFieldが含まれています。

ユーザがUITextFieldの値を変更するたびに、UIViewControllerは通知され、セルindexPath.rowプロパティを使用して値をNSDictionaryに格納し、値が格納される必要のあるセルのキーを識別します。

問題は、ユーザーがセルにフォーカスを置いてから上下にスクロールすると(ビューからセルを削除すると)、表示されないためセルのindexPathを取得できなくなります。

値が格納されているセルがわからないので、値を格納できません。

以前にこの問題を実行したことがある人はいませんか?これは、iPhoneアプリケーション間の共通のデザインと思われる、これは良い実装かどうか誰にも考えがありますか?

ありがとうございます!

+0

表示されていないセルがindexPathにどのような影響を与えるかは不明です。もっと詳しいことを教えてください。 – raidfive

+0

@raidfive表示されていないのでテーブルから取り出すことができない方法で影響を受けています。 cellForARowAtIndexPathメソッドは、表上に表示されている項目のセルのみを返します。 –

+0

@Nakardoさて、あなたは今何を意味しているのか分かります。はい、セルが表示されていないときは、解放されている可能性が高いため、とにかくアクセスすることはできません。私は、あなたのアプリで別のアプローチを取って、これにより隠れたセルにアクセスしようとしないことをお勧めします。 – raidfive

答えて

0

私はあなたがtextFieldDidEndEditing:を観察していると仮定しています。あなたはそれが発砲していない、または発砲していると言っていますか?それはもはや細胞のいずれにもありません(おそらく、それが除去されているからです)。

後者を仮定すると、私のアプローチはUITextFieldsetTag:を使用してインデックスを容易に追跡できるようにすることです。これはあなたが画面上にいる場合でも、あなたの細胞の中でこれまでどおりに狩りをするのを防ぎます。

+0

TextFieldDidEndEditing:が実行されていますが、UITextFieldが含まれているセルのindexPathは、表示されていないため、セルを取得するためには役に立ちません。 –

+0

ありがとう、私はあなたが示唆した変更を追加し、素晴らしい作品です。 :) –

関連する問題