0

次のView Controllerを使用してiOSアプリを構築しています:

1) ProductViewController - 製品のカルーセルを表示します。ユーザーが製品に移動すると、ユーザーはボタンを選択して製品の詳細を表示したり、別のボタンを選択して製品をショッピング カートに追加したりできます。

2) HistoryViewController - 製品に関する詳細な履歴を垂直にスクロールするタイムラインに表示します (UIScrollView を使用して実装)。

3) GameViewController - ユーザーが前後の矢印ボタンを使用して一連のビューをスクロールするトリビア ゲームをプレイできるゲームを開始します (約 20 個あります)。

セットアップはこれで終わりです...これが私の設計上の問題の核心です: ユーザーがアプリの特定の重要なポイントに到達したときに、ユーザーにポップアップメッセージを作成したいと考えています。これらのキーポイントを「アンカーポイント」と呼びましょう

たとえば、ユーザーがカルーセル ビュー (つまり、ProductViewController) で 3 番目の製品を見るとすぐにポップアップが表示されます。

ユーザーが (HistoryViewController 内の) HistoryView の途中まで到達すると、ポップアップが再び表示されます。

ユーザーが GameViewController で 7 つの項目を表示すると、ポップアップが再び表示されます。

これらの「アンカーポイント」を柔軟な方法で追加して、ポップアップが表示されるアプリ内の場所を簡単に変更できるようにしたい (最小限のコード変更で、主に構成を使用)

Q1) この設計を行うために使用する最善の方法または設計パターンは何ですか?

Q2) 後の機能強化として、アンカー ポイントの一部をキー アンカー ポイントとして使用したいと考えています。ユーザーが特定の数のキー アンカー ポイントを通過した場合、ユーザーに特別なメッセージを送信できます。

よろしくお願いします。

4

2 に答える 2

1

このための知識を所有するために、別のコントローラー(おそらくシングルトン)を用意することをおそらく考えます。メッセージが表示される前に必要な構成とトリガーの数を処理します。

アプリ内の他のコントローラーは、カウントや監視対象について知る必要がないため、通知は適切なオプションです。一連の通知を (アンカー ポイントを作成するイベントの種類に対して) 定義し、イベントが発生したときにすべてのコントローラーに通知を投稿させます。

別のコントローラーは、通知の監視、メッセージのカウントと表示を処理します。表示がアラートやモーダル表示の場合は簡単です。そうでない場合は、現在のトップ コントローラーを取得できるように、コントローラーにルート ビュー コントローラーへのリンクが必要です (アラートまたはモーダルが望ましい)。

于 2013-07-29T21:36:51.757 に答える
1

これが私の答えです。うまくいけば、質問を正しく理解し、これが役立ちます。

ポップアップ マネージャー クラスを作成し、最初に作成する必要がある場所 (アプリ デリゲート?) を開始して、ユーザーの進行状況を追跡し、ポップアップ マネージャー クラスにポップアップ アラート メッセージを表示させて、ユーザーにサプライズがあることを知らせます。

于 2013-07-29T21:34:11.943 に答える