【问题标题】:Passing user data through view controllers [duplicate]通过视图控制器传递用户数据[重复]
【发布时间】:2014-12-01 23:14:15
【问题描述】:

我正在制作一个允许用户登录的基本应用程序。

我想知道在视图控制器之间传递用户数据的一般做法。用户通过身份验证后,通常可以接受通过视图控制器传递他们的数据吗?

例如,用户 A 已登录并通过身份验证。用户 A 想要“创建一个事件”,为了能够保存用户正在主持此事件,我必须将用户 ID 作为主持人存储在事件上,并且我需要访问他的 UID。您会在登录后保存用户 ID 并继续将其传递给每个视图吗?

如果有帮助,我将使用 Firebase 作为我的后端。

【问题讨论】:

    标签: ios xcode swift 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 件事。

    1. 将在目标控制器中声明 var。
    2. 在源控制器中,您将触发该功能:在适当的时间执行SegueWithIdentifier。
    3. 这会将您带到您的 prepareForSegue 函数(此函数的内容就像您转换到新控制器之前的最后一个不返回点)。在内部,创建一个 var,其中类型的名称是目标视图控制器的名称。
    4. 使用点运算符访问要传递给的变量并为其赋予适当的值

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-12-26
        • 2015-02-10
        • 2021-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多