2014-12-01 52 views
0

我正在制作一个允许用户登录的基本应用程序。通过视图控制器传递用户数据

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

例如,用户A被记录在和认证。用户A想要“创建一个事件”,为了能够保存用户正在主持该事件,我必须将该用户ID作为主机存储在该事件上,并且我需要访问他的UID。您是否会在登录后保存用户ID并将其传递给每个视图?

我使用火力地堡作为我的后端是否有帮助。

回答

0

是的,最佳做法是根据需要在视图控制器之间传递数据。您通常会使用prepareForSegue方法来完成此操作。不要陷入使用(滥用,而是)你的应用程序委托来维持一堆全局状态的常见做法。这是一个坏消息。在我看来,将数据传递到视图控制器层次结构,而不是让视图控制器重新启动并抓住他们需要的东西,它会更干净,更模块化。

2

你应该了解一个名为“塞格斯”的东西。它是ios中视图间转换的主要机制。

这里有一个很好的教程(没有个人联系,顺便说一句) http://makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/

没有使用火力点,但如果你是从头开始自己通过事件的数据,你会做4两件事。

  1. 将宣布在目标控制器的变种。
  2. 在源控制器中,您可以在适当的时间触发函数:performSegueWithIdentifier。
  3. ,把你带到你的prepareForSegue功能(本功能的内容是一样的,你过渡到新的控制器之前没有返回的最后一个点)。在里面,创建一个var,其中类型的名称是目标视图控制器的名称。
  4. 使用点运算符访问要传递给的变量并给它适当的值