次のアプリをどのように実装するべきかについて、私は本当にかなり混乱しています。私はコードの 90% を持っていますが、最後の 10% は把握できません。イベントの流れを制御する方法がわかりません。最初にアプリ/ゲームについて説明します。
ゲーム
イベントの流れはこんな感じ。ユーザーは、チーム数とラウンド数を設定します。その後、「チーム 1 にパス」という画面が表示されます。次に、チーム 1 のプレーヤーがボタンを押すと、別のビューが表示されます。
このビューでは、現在のプレーヤーは、画面上の単語/名前をチームの他のプレーヤーに言わずに説明しようとします。誰かが単語/名前を正しく推測するたびに、プレーヤーはボタンを押してより多くの単語を引き出し、そのチームのスコアに 1 を追加します。これは、タイマーが切れるまで続きます。
タイマーが切れると、このビューはナビゲーション コントローラーからポップされ、前のビューはプレーヤーにチーム 2 にパスするように伝えます。
これはチーム数とラウンド数だけループします。
私の問題
私の問題は、これらすべてのイベントを追跡する方法を本当に理解していないことです。スコアやチーム名などの配列を保持する「GameBrain」クラスがありますが、各 ViewController からこれにアクセスする方法がわかりません。
以前に同様の質問をし、誰かが Singleton クラスを提案しましたが、これは悪い習慣であり、MVC 設計パターンに従ってこれを行うことができるはずだと感じずにはいられません。
私の質問は、このようなゲームのコーディングにどのようにアプローチしますか?
漠然とした質問で申し訳ありません。どんな助けでも大歓迎です。
編集:デリゲートは正しい方法ですか? つまり、「GameBrain」から必要な最初の ViewController を作成し、脳 (self
この場合) をこのインスタンスのデリゲートとして設定し、ViewController に「このラウンドは終了しました」メソッドを呼び出してもらいますか?次のViewControllerを起動する脳?