私は特に、優れたMVCパターン設計に関してAppleの基準に従う方法に興味があります。私の質問を例で説明しましょう。iOS MVCアプリケーションに関する懸念の分離
UITableView
のようなかなり複雑なUI要素が画面上にあるとします。基本的にこれらの要素は、データソースとデリゲートが対話を処理する必要があります。
これには2つのアプローチがあります。
UITableViewController
のすべての要素を処理し、要求するUITableView
に基づいて動的に処理するサブクラスを持つことができます。
第2のアプローチは、個々のビューを管理する「軽量」コントローラを持つことです。 iOS 4.xでは複数のUIViewControllerを持つことはできませんので、これらのコントローラは状態と対話を管理するためのものです。
私は最初のアプローチが肥大していないし、物事を結合しているようだから嫌いです。異なるタイプの複数の複雑なオブジェクトがある場合はどうなりますか?
第2のアプローチが優れているようです。オブジェクトはよりよくカプセル化されます - 懸念の分離。唯一の欠点は、コミュニケーションの複雑さの増加です。軽量コントローラーは、実際のビューコントローラーに委譲するか、実際の操作を実行するために何かを処理する必要があります。
これらのアプローチのいずれかの経験はありますか?複雑なインターフェイスを分解するためのより良いソリューションはありますか?
おかげ
しかし、複数のTableviewがある場合は、すべて同じViewControllerにリンクしていますか? CoreDataだけでなく、さまざまなポイントからデータを取得する必要がある場合次いで、前記ビューコントローラは、各テーブルビューを個別に処理する必要がある。より大きいUIViewController内に個々のコントローラオブジェクトを持つ方がクリーンではないでしょうか? – EightyEight
いいえ。データソース/デリゲートを別のものに指定することができます。そのテーブルビューを管理する別のオブジェクトに割り当てます。 UIViewControllerを「ネスト」する必要はありません。 –