ios – 用于管理视图控制器流的类的模式

目前我正在使用Singleton类做一些工作,但我想知道是否有更好的东西.

我有一个具有完全动态工作流程的应用程序.它使用导航控制器,但视图控制器的顺序完全取决于从我们的服务器下载的一些数据.

整个工作流程将下载并保存在一个数组中.

应用程序的“主菜单”屏幕有几个选项(设置,最近等等),这些是固定的,但其中一个是动态的.它始终以相同类型的视图控制器开始,但从那时起它取决于您选择的内容.

描述

这些动态控制器有4种不同类型.

>具有单一选择和详细指示的表视图控制器.
>具有多个选择和选中标记的表视图控制器.
>使用文本字段和键盘查看控制器.
> View Controller(与其他相关的VC)用于在服务器上搜索帐户.

当您按下主菜单上的“新事件”选项时,菜单会转到单例(EventManager)并告诉它开始一个新事件.

单例然后在导航控制器上推送单个选择动态视图并为其提供初始选项.

从这里开始,单身人士会选择所有选项并确定接下来需要什么类型的视图.

我希望这是有道理的

无论如何,我不喜欢这里的单身模式,因为我不认为它应该是单身人士.

我想要的是一个可以从ViewController创建的类,然后该类将控制不同视图控制器之间的数据推送和弹出以及数据流.然后,当您返回主菜单时,此课程可以消失,因此我每次都会创建一个新课程.

有没有我可以看到的模式会这样做?或者我应该像现在这样坚持单身?

我希望这是有道理的.

编辑

我可以使用UIPageViewController吗?那么UIPageViewController的datasource / delegate对象将取代我目前正在使用的Singleton …或者什么?

从TWITTER请求添加照片

流程中的每个VC都不知道它前面有什么凸轮或接下来会发生什么.他们所做的只是回到单身人士说“选择了这个值”或“输入了这个文本”等…

单例然后存储该信息并计算接下来的内容并将下一个VC推送到堆栈.

它需要能够沿堆栈向后移动,以便用户可以返回更改某些内容等…

这一切都在工作,因为我只是不喜欢使用单身人士.

解决方法

这里有很多评论,按重要性排序.

你在这里描述的一切听起来都非常好,甚至到了命名. “EventManager”听起来像它管理系统中的所有“事件”(所以我希望有一个名为Event的类,但这是一个微小的狡辩,名称可能仍然非常好).还有其他好的设计,但我不会有任何问题.

我同意这看起来非常适合UIPageViewController.你当然应该调查一下,看看它是否合适.如果可以的话,使用内置控制器总是很好.

没有理由强烈避免单身人士.它们是iOS开发的自然组成部分,在良好的Cocoa设计中相当普遍.它们一般应该是“shared” singletons(永远不会创建覆盖allocWithZone的“严格”单例:).这只是创建一个易于访问的实例而不是真正的“单例”.这就像NSNotificationCenter这样的工作方式,并且通常是非常好的模式.

当系统的许多随机部分需要直接访问它们并将它们传递给每个人时,单身人员是最好的,这将是很多开销(特别是如果许多部分你必须传递对象而不需要它自己) .再次,想想NSNotificationCenter.如果它的用户大部分是连续的(即大多数对象你都会将它传递给实际需要它),那么只需在程序开头创建一个并传递它.这听起来像你的情况,所以你对它的直觉似乎很好.只需将它解单并传递它.容易改变.

但我肯定会深入研究UIPageViewController.它可以很好地匹配您的问题.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...