通过视图控制器传递用户数据

时间:2014-12-01 23:14:16

标签: ios xcode swift firebase

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

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

例如,用户A已登录并进行身份验证。用户A想要“创建一个事件”,为了能够保存用户正在托管此事件,我必须将用户ID存储在事件中作为主机,我需要访问他的UID。您是否会在登录后保存用户ID并继续将其传递到每个视图?

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

2 个答案:

答案 0 :(得分:2)

你应该学习一种名为" 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. 在源控制器中,您将在适当的时间触发函数:performSegueWithIdentifier。
  3. 带您进入prepareForSegue函数(此函数的内容就像转换到新控制器之前的最后一点不返回)。在里面,创建一个var,其中类型的名称是目标视图控制器的名称。
  4. 使用点运算符访问要传递给的变量并为其指定适当的值

答案 1 :(得分:0)

是的,最佳做法是根据需要在视图控制器之间传递数据。您通常会使用prepareForSegue方法来实现此目的。不要陷入使用(滥用,而不是)你的app委托来维持一堆全局状态的常见做法。这是个坏消息。在我看来,它更清晰,更模块化,可以在视图控制器层次结构中传递数据,而不是让视图控制器回到“向上”并抓住他们需要的东西。