からの相互作用だけを抽象化する方法を理解するのに助けが必要UIViewController
です。すべての意図と目的のために、パズルを制御するビューコントローラーがあるとしましょう。一連のピースビュー、パズルボードビュー(ピースを配置する場所)、およびその他のいくつかのビューがあります。今、私はそれらのパズルのピースとの典型的なパンスタイルの相互作用を持っています。
私がする必要があるのは、その相互作用を抽象化して、ボタンをクリックするかメソッドを呼び出すだけで、すべての状態を維持しながら、いわばシステム全体の「相互作用モード」を完全に変更できるようにすることです。それ以外の場合は、切り替え前の正確な場所です。たとえば、指でピースをドラッグする代わりに、切り替え後、ピースを「選択」してから、重力を使用してジャイロでスライドさせる必要があります。
私はiOSにまったく慣れておらず、実際には一般的にOOの経験がほとんどないので、コードを切断してこれを理解する前に、経験豊富な人からアドバイスをもらいたいと思っています。(はい、スナップショットを撮りますが、まだ緊張しています!)とにかく、私は多分私はこのようなことをすべきだと思っていました:
- 私のビューへの強力なポインターを保持し、相互作用に関連しないすべての処理を行うルートビューコントローラーを用意します
- そのルートビューコントローラーに、すべてのインタラクションコードを処理することがジョブであるインタラクションコントローラーへのポインターを設定します
- インタラクションコントローラーは、実行時に委任を介してルートビューコントローラーから委任を介してビューを取得し、ジェスチャーレコグナイザーなどをviewDidLoadのビューにアタッチします
- インタラクションコントローラーは、実行時にスイッチアウトされます。受け入れ可能なインタラクションコントローラーオブジェクトは、この目的のために定義したUIInteractionViewControllerのサブクラスからのものになります。
これでいいのかわからない
a)実際に機能する
b)それを行うための最良の方法である
c)実行時に実際に動作するのに十分な速度である
d)スケーラブルである(これらの異なる「モード」の多くが必要になる場合があります)。
実際、自分が書いたものを見れば見るほど、その意味を疑うようになります。助けてください。
ありがとう!