在多个视图控制器之间传递数据[重复]

Posted

技术标签:

【中文标题】在多个视图控制器之间传递数据[重复]【英文标题】:Passing data between several view controllers [duplicate] 【发布时间】:2015-02-16 15:25:07 【问题描述】:

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

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

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

我也在考虑单例/NSUserDefaults,但它也不完美。

【问题讨论】:

为什么你认为单例并不完美? UIViewController 是否以模态顺序显示?即一个接一个? Singleton 似乎是一个很好的解决方案,我可能会使用它,但我想知道是否有其他更好的解决方案来解决这个问题。 @Kex 他们被推了 我想我明白你的意思,你担心每次推送一个新的控制器时,你都必须再次访问对象并修改正确的字段,所以看起来不是很优雅。不过,这可能比通过控制器通过 segue 传递一个对象 7 次要好。 现在在 *** 中很难问一个问题,因为你总是在不知道为什么的情况下得到缺点。 【参考方案1】:

Singleton 并不是完美的方法,因为它很容易打乱您的内存管理。与 NSUserDefaults 相同(+ 它只吃某些类并持久化可能不应该持久化的数据)。

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

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

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

【讨论】:

以上是关于在多个视图控制器之间传递数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在视图控制器之间的 NSString 中传递数据 - 目标 C [重复]

在视图控制器之间传递数据而不使用 segues [重复]

在视图控制器之间传递 iOS 10 Segue 中的数据 [重复]

在视图控制器之间传递NSString中的数据 - 目标C [重复]

在视图控制器之间传递多个标签时遇到问题

在具有委托的视图控制器之间传递多个值