2016-11-11 12 views
0

私たちのアプリケーションのView Controller - Viewアーキテクチャを構築しているとき(私は、オブジェクトの関係やそれらがどのように働いているか、どのような役割を果たしているかなど、正しく使用していると思います。 ):複雑なタッチコードのビューには独自のビューコントローラが必要ですか?

ビューはUIResponderであり、タッチイベントを受け取ります。 View Controllerは、これらのタッチイベントも受信します。しかし、View Controllerはコントローラオブジェクトであり、タッチイベントに応答するのはコントローラロジックなので、ビューコントローラはどのビューがタッチされたかに応じて何をすべきかを知っている必要があります。

すべてのタッチロジックをビューコントローラオブジェクトに入れ、ビューオブジェクトに入れない方がよいでしょうか?本質的には、ビューがタッチに反応できるという事実を無視する。

すべてのロジックをView Controllerオブジェクトに入れると、かなりの量のタッチロジックを必要とするビューごとにView Controllerオブジェクトを持たせることをお勧めしますか?そのため、すべてのタッチインタラクションコードを含むインターフェース要素としてのサブビューの束を持つ1つのView Controllerではなく、各サブビューを独自のView Controllerオブジェクトのメインビューにし、それらのView Controllerをすべて親の子にするビューコントローラ。

これは良いアプローチですか?ビューが行う、UIButton、またはUITextFieldのように、再利用可能なロジックと、おそらく状態のいくつかの種類をカプセル化するために起こっている場合はビューは独自のタッチイベントを処理するためにあなたの助け

答えて

1

ため

おかげで、それは理にかなっていると、 viewControllerは実際にはタッチの詳細だけでなくイベントについて気にするので、それらをUIControlEventsに変換します。他のケースでは、要素間のドラッグ・アンド・ドロップを許可している場合など、このロジックをviewControllerに入れるほうが意味があります。場合によっては、UITableViewのように違いを分けて、ビューに汎用機能の多くを入れますが、機能をカスタマイズできるように、ViewControllerにいくつかの責任を委譲します。

関連する問題