現在、私はシングルトンクラスを使用していくつかの作業を行っていますが、もっと良いものがあるかどうか疑問に思っています。
完全に動的なワークフローを持つアプリがあります。ナビゲーションコントローラーを使用しますが、ビューコントローラーの順序は、サーバーからダウンロードされたデータに完全に依存します。
ワークフロー全体がダウンロードされ、配列に保存されます。
アプリの「メインメニュー」画面にはいくつかの選択肢(設定、最近など)がありますが、これらは固定されていますが、そのうちの1つは動的なものです。それは常に同じタイプのViewControllerで始まりますが、それ以降は選択したものによって異なります。
説明
これらの動的コントローラーには4つの異なるタイプがあります。
- 単一の選択および詳細インジケーターを備えたテーブルビューコントローラー。
- 複数の選択とチェックマークが付いたテーブルビューコントローラ。
- テキストフィールドとキーボードを備えたViewController。
- サーバー上のアカウントの検索に使用されるViewController(および他の関連するVC)。
メインメニューの[新しいイベント]オプションを押すと、メニューはシングルトン(EventManager)に移動し、新しいイベントを開始するように指示します。
次に、シングルトンはnavコントローラーで単一選択の動的ビューをプッシュし、初期オプションを提供します。
ここから、シングルトンはすべての選択を取得し、次に必要なビューのタイプを決定します。
これが理にかなっていることを願っています
とにかく、私はそれがシングルトンであるべきではないと思うので、ここでのシングルトンパターンは好きではありません。
私が欲しいのは、ViewControllerから作成できるクラスです。このクラスは、さまざまなViewControllerのロード間のデータのプッシュとポップおよびフローを制御します。次に、メインメニューに戻ると、このクラスがなくなる可能性があるため、毎回新しいクラスを作成します。
これを行うために私が見ることができるパターンはありますか?それとも、今のようにシングルトンに固執する必要がありますか?
これが理にかなっていることを願っています。
編集
これにUIPageViewControllerを使用できますか?次に、UIPageViewControllerのデータソース/デリゲートオブジェクトが、現在使用しているシングルトンの代わりになります...または何か?
ツイッターリクエストからの写真の追加
フローに沿った各VCは、その前にどのカムがあり、次に何が来るかを認識していません。シングルトンにコールバックして、「この値が選択されました」または「このテキストが入力されました」などと言うだけです。
次に、シングルトンはその情報を保存し、次に来るものを計算して、次のVCをスタックにプッシュします。
ユーザーが戻って何かを変更できるように、スタックに沿って戻ることができる必要があります...
シングルトンの使用が好きではないので、すべてが機能しています。