Cocoa MVC の採用では、View はモデルについて何も認識していません。これを次の図に示します。
しかし、次の例
を考えてみてください。モデルにItemクラスがあり、それを視覚的に表現したいと考えています。私にとって最も明白なのは、 Itemで初期化されるItemViewクラスです。
このように、私は Cocoa MVC のルールを破っており、それに違和感を覚えています。しかし、 ItemViewのようなクラスがないのも違和感があります。最も実用的な解決策は何ですか?
Cocoa MVC の採用では、View はモデルについて何も認識していません。これを次の図に示します。
しかし、次の例
を考えてみてください。モデルにItemクラスがあり、それを視覚的に表現したいと考えています。私にとって最も明白なのは、 Itemで初期化されるItemViewクラスです。
このように、私は Cocoa MVC のルールを破っており、それに違和感を覚えています。しかし、 ItemViewのようなクラスがないのも違和感があります。最も実用的な解決策は何ですか?
MVC について本当に心配している場合は、次のようにコントローラーでメソッドを定義するのはどうでしょうか。
- (UIView*)itemViewForItem:(Item*)item;
ItemView の作成と「入力」を担当するのはどれですか?
メインコントローラークラスは、メインビューとItemViews
取得したすべてのコントローラーとして機能します。
別のアプローチは、各 ItemView に独自の ItemViewController を与えることです。これは完全に問題なく、コントローラー/ビューが複雑である場合、IMOも最善のアプローチです。これの欠点は、コントローラー コンテナーの処理が iOS>5 でのみサポートされていることです。