通过视图控制器传递用户数据[重复]

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 方法来完成此操作。不要陷入使用(而是滥用)您的应用程序委托来维护一堆全局状态的常见做法。那是个坏消息。在我看来,将数据向下传递到视图控制器层次结构更加简洁和模块化,而不是让您的视图控制器“向上”返回并获取他们需要的内容。

【讨论】:

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

如何通过重定向将数据传递到laravel中的视图

将数据从 viewcontroller tableview 传递到另一个视图控制器

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

如何通过 2 个视图控制器传递 textfield.text 数据

为啥我的用户数据没有使用资源控制器中的 show 方法传递到页面视图?

将从 HTTP 请求数据声明的数据/变量传递到另一个视图控制器