0

我正在使用以下视图控制器构建一个 iOS 应用程序:

1) ProductViewController - 显示产品的轮播。当用户旋转到产品时,用户可以选择一个按钮来查看产品的详细信息,或者选择另一个按钮来将产品添加到购物车

2) HistoryViewController - 在垂直滚动的时间线上显示有关产品的详细历史记录(使用 UIScrollView 实现)。

3) GameViewController - 启动一个游戏,用户可以在其中玩一个琐事游戏,他使用前后箭头按钮滚动浏览一组视图(其中大约有 20 个)

设置好了这么多...这是我设计问题的症结所在:当用户到达应用程序中的某些关键点时,我想为用户创建弹出消息。让我们将这些关键点称为“锚点”

因此,例如,一旦用户在轮播视图中看到第三个产品(即在 ProductViewController 中),弹出窗口就会出现

当用户在 HistoryView 中途(在 HistoryViewController 中)时,弹出窗口再次出现

当用户在 GameViewController 中看到 7 个项目时,弹出窗口再次出现。

我想以灵活的方式添加这些“锚点”,以便我可以轻松地更改应用程序中出现弹出窗口的那些位置(代码更改最少,主要通过配置)

Q1) 进行此设计的最佳方式或设计模式是什么?

Q2)作为以后的增强,我想使用一些锚点作为关键锚点,如果用户经过一定数量的关键锚点,我可以向用户发送特殊消息。

在此先感谢您的帮助!

4

2 回答 2

1

这是我的答案,希望我正确理解了这个问题,这会有所帮助。

创建一个弹出管理器类并在需要首先创建它的地方启动(应用程序委托?)以跟踪用户进度,并让弹出管理器类弹出警报消息,让用户知道您对他们有什么惊喜。

于 2013-07-29T21:34:11.943 回答
1

我可能会考虑拥有一个单独的控制器(可能是单例)来拥有这方面的知识。它处理显示任何消息之前所需的任何配置和触发器数量。

应用程序中的其他控制器不应该知道计数或正在监视的内容,因此通知是一个不错的选择。定义一组通知(用于制作锚点的事件类型)并让所有控制器在事件发生时发布通知。

您的单独控制器负责观察通知、计数和显示消息。如果显示为警报或模态显示,这很容易。如果没有,控制器应该有一个到根视图控制器的链接,以便它可以获取当前的顶级控制器(最好是警报或模式)。

于 2013-07-29T21:36:51.757 回答