0

テーブルビューのあるビューがあります。モデルのオブジェクトの表現を作成するために、TableViewCellsをサブクラス化しました。このカスタムUITableViewCellには、モデルのオブジェクトを変更するための2つのボタンがあります(インスタンス変数に+1 -1を作成します)。

だから私はそれらすべてをどのようにアーキテクチャ化すべきかを考えます、私のオプションは次のとおりです:

-カスタムtableViewCellにポインターを置き、ボタンの1つから通知を受け取ったときに、モデルのセルとオブジェクトを偶然見つけました(ビューがモデルを変更しているため、このソリューションは好きではありません。再利用するのは良くありません。セルがとても悪い)

-セルクラスにUICustomTableViewCellDelegateプロトコルとのインスタンスを作成します。id<UICustomTableViewCellDelegate>UIElementからメッセージを受信すると、デリゲートを呼び出します。デリゲートは、オブジェクトのすべてのインスタンスを含む配列を持つ一般ビューのUIViewControllerをポイントし、ここでモデルを変更します。セルビューをに変更する前。再利用には悪くないと思いますが、ViewControllerの配列からオブジェクトを簡単に識別して回復するにはどうすればよいですか?方法は次のようにすべきだと思います。

-(void)customTableCellViewButtonPlusPressed:(CustomTableViewCell*) cell;

-オブジェクトへの参照を使用してCustomTableViewCellのviewControllerを作成します。彼はセルのUIButtonからメッセージを受け取り、cellViewと参照されているモデルのオブジェクトを変更します

ベストプラクティスは何ですか?

4

1 に答える 1

1

3番目のソリューションはそれらの中で最もmvcです

  1. モデルが作成され、モデル自体で実行されるすべての関数と計算を使用して、モデルを可能な限り重くします。
  2. このクラスであるコントローラーはUICustomTableViewCell、モデルを読み取り、ビュー上でそれを実現します。また、ビューからイベントを取得し、それに応じてモデルを変更します。
  3. ビューはUICustomTableViewCellxibファイルになり、セルの描画と実現に関する情報が含まれます。

モデルは、UICustomTableViewCell内の「has」関係に含まれます。UICustomViewCellクラスは、描画関数をビューに送信し、ビューからイベントを受信して​​、それに応じてモデルを変更できます。

于 2012-06-08T12:00:13.983 に答える