2017-07-13 7 views

答えて

1

一般に、ビューの代理人の場合はモデルに入れます。 UIに関連しないモデルレベルのデリゲートの場合はに実装してください。

+0

ありがとう、わかりやすかったです。 –

+0

デリゲートがネットワークに関連している場合、UIに直接関係しないものはモデルに残ります。 –

+1

@SaurabhSaini、はい。また、ネットワークデータを受信して​​解析するときに通知を使用したり、カスタムデリゲートを作成してUIを更新することができます。そのデリゲートはビューモデルで実装する必要があります。 – kelin

1

あなたの質問はかなり不明ですが、私はまだあなたにアウトライン/ガイドラインを提供することができます。

通常、アプリの複雑さが増していくにつれて、データごとにカスタマイズして記述できるビューごとにビューモデルが必要になります。ビューコントローラをきれいにして読みやすくするため、ビューコントローラはカスタムビューのコンテナとしてのみ使用する必要があります。カスタムビューにはビューモデルプロパティー(didSet)があり、ビューを変更および構成できます。たとえば、私がtableViewからセルをデキューするとき、私は(cell as? MyCustomCellClass)?.viewModel = aViewModelに非常に読みやすくするようにします。デリゲートを使用してビジネスロジックを処理するには、デリゲートを適切に設定してサブビューとビューをやりとりするか、tableViewCellからUITableViewDelegateまたはUITableViewDataSourceを管理して拡張しているコントローラに渡します。つまり、MVVMアーキテクチャは、カスタムビューを構成するために使用できるカスタムビューモデルに依存しますが、ビジネスロジックを管理し、下位レベルのものと上位レベルのものとの間のデータフローを処理するコントローラオブジェクトがあります。助けたい具体例がある場合は、コードを記入してください。これが助けて欲しい!

関連する問題