0

私はよくUITableViewController編集ボタンを持っていますが、テーブルに行がない場合は無効にします。これを同期させるために、ボタンを更新する可能性のある何かが発生するたびにボタンを有効/無効にしますdataSource-最初の行の追加、最後の行の削除viewDidLoadなど。テーブルの内容に影響を与える可能性のある新しい機能を追加するたびに、このロジックを組み込むことを忘れないでください。

UITableViewこれを単純化するために使用できるの代理人はいますか?テーブル(またはテーブルdataSource)が変更されたときはいつでも知る方法。ここで、内のアイテムの数を確認し、dataSourceそれに応じて有効/無効にすることができます。

あるいは、他のアプローチも歓迎されます。

4

1 に答える 1

3

あなたデータソースです。したがって、知りたい場合は、データソースが変更されるたびにわかります。言い換えると、この問題が発生している理由は、モデルを(model-view-controllerアーキテクチャーで)エイリアンとして扱っているためです。代わりに、モデルを独自のものとして扱います。モデルを担当します。たとえば、モデルは配列ですか?次に、それを独自のクラスでラップします。このクラスには、配列を変更するためのすべてのコマンドを指定する必要があります。そうすれば、配列を変更するように指示されたときに通知を発行できます。

特定の状況下では、Key-Value Observingを使用して何かが変更されたときに通知を受け取ることも可能であり、それを調べることもできますが、配列や辞書などのプリミティブでは、これが価値以上の問題になる可能性があります。繰り返しになりますが、モデルストレージを独自のクラスにラップする方が幸せになる可能性があります。クラスの可観測性はKVOを介して自分で管理できます。

于 2012-09-16T02:34:33.063 に答える