在多个视图控制器之间传递数据

Passing data between several view controllers

我已经创建了 7 个视图控制器,每个视图控制器中都有几个文本字段。 我需要从所有视图控制器收集数据并在最后一个中发出 API 请求。

传递此数据的最佳模式是什么?

我正在考虑通过 prepareForSegue 方法传递一个自定义模型对象,但维护起来太复杂了。

我也在考虑 singleton/NSUserDefaults 但它也不完美。

单例不是完美的方式,因为它很容易搞乱你的内存管理。与 NSUserDefaults 相同(+ 它只吃某些 类 并保留可能不应该保留的数据)。

只需将对象从视图控制器传递到视图控制器。

如果您发现 7 个视图控制器难以维护,可能您的用户也会发现 7 个视图控制器也难以处理。

如果目标视图控制器也是一种 BaseViewController,您也可以有一个通用的 BaseViewController,它在 prepareForSegue: 中传递一个对象。