为iOS加载动态/顺序视图/控制器的正确设计模式是什么?

时间:2014-10-26 19:29:23

标签: ios segue

我有一些逻辑,在应用程序启动时,下载一些应该在结帐过程中显示的顺序屏幕。我遇到的问题是ViewControllers可以为不同的用户重新订购。我不知道如何让一个控制器调用另一个控制器。是否应该在每个控制器中使用prepareForSegue完成所有这些步骤?

例如,我有我的根控制器A,它进行Web服务调用并返回3个屏幕以按特定顺序显示:B,C,D

但是,其他用户可能只按该顺序获得屏幕D,C。屏幕/控制器已经存在于应用程序中并进行编码,我只想找出以各种顺序调用它们的最佳方式?

1 个答案:

答案 0 :(得分:0)

根据您的问题,您需要动态地以不同的顺序向不同的用户显示视图控制器。

  1. 我建议您不要使用segues并以编程方式显示viewcontrollers 。这将为您提供灵活性。例如,在iPhone中,您可能需要推送新的viewcontroller,而在iPad中,您可能需要将其显示为弹出窗口。

  2. 我建议你研究命令设计模式。这样,在解析服务响应后,您可以调用create命令向您显示视图控制器,将它们保存在队列中(Invoker),然后执行命令以向用户显示viewcontrollers。在这里,您不需要完整的命令模式。您只需要维护一个队列并保留上下文。您还可以考虑使用pre和post show(viewcontroller)方法。这将有助于您扩展代码。您不需要立即拥有它们(前/后),但可以相应地规划您的设计。 对于前/后方法,您可以查看 模板设计模式。同样,您不需要完整的模板。