通过视图控制器传递用户数据[重复]
Posted
技术标签:
【中文标题】通过视图控制器传递用户数据[重复]【英文标题】:Passing user data through view controllers [duplicate] 【发布时间】:2014-12-01 23:14:15 【问题描述】:我正在制作一个允许用户登录的基本应用程序。
我想知道在视图控制器之间传递用户数据的一般做法。用户通过身份验证后,通常可以接受通过视图控制器传递他们的数据吗?
例如,用户 A 已登录并通过身份验证。用户 A 想要“创建一个事件”,为了能够保存用户正在主持此事件,我必须将用户 ID 作为主持人存储在事件上,并且我需要访问他的 UID。您会在登录后保存用户 ID 并继续将其传递给每个视图吗?
如果有帮助,我将使用 Firebase 作为我的后端。
【问题讨论】:
【参考方案1】:你应该了解一种叫做“segues”的东西。它是 ios 中视图之间转换的主要机制。
这是一个很好的教程(没有个人从属关系,顺便说一句) http://makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/
没有使用 firebase,但如果您自己从头开始传递事件数据,您会做 4 件事。
-
将在目标控制器中声明 var。
在源控制器中,您将触发该功能:在适当的时间执行SegueWithIdentifier。
这会将您带到您的 prepareForSegue 函数(此函数的内容就像您转换到新控制器之前的最后一个不返回点)。在内部,创建一个 var,其中类型的名称是目标视图控制器的名称。
使用点运算符访问要传递给的变量并为其赋予适当的值
【讨论】:
【参考方案2】:是的,最佳做法是根据需要在视图控制器之间传递数据。您通常使用prepareForSegue
方法来完成此操作。不要陷入使用(而是滥用)您的应用程序委托来维护一堆全局状态的常见做法。那是个坏消息。在我看来,将数据向下传递到视图控制器层次结构更加简洁和模块化,而不是让您的视图控制器“向上”返回并获取他们需要的内容。
【讨论】:
以上是关于通过视图控制器传递用户数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 viewcontroller tableview 传递到另一个视图控制器
如何通过 2 个视图控制器传递 textfield.text 数据