在我的iOS(Swift)应用程序生命周期中,我应该从firebase获取所有数据吗?

时间:2018-01-19 08:43:14

标签: ios swift ios-lifecycle

在从firebase获取所有数据之前,用户可能无法与我的应用互动。所以到目前为止我的新手计划是:

  1. 启动微调器
  2. 从firebase获取数据(async)
  3. 完成第2步异步作业后,再隐藏微调器
  4. 我作为新手的第一个想法通常不是要走的路,必须有一个更聪明的方式,涉及框架(可能是应用程序生命周期中的某个位置)或最佳实践模式。
    我无法在www上找到任何有用的东西。链接也可以提供帮助。

2 个答案:

答案 0 :(得分:1)

您应该在ViewDidLoad()

中获取数据
  

viewDidLoad() - 在从故事板创建和加载视图控制器的内容视图(其视图层次结构的顶部)时调用。在调用此方法时,视图控制器的出口保证具有有效值。使用此方法执行视图控制器所需的任何其他设置。

通常,iOS在首次创建内容视图时只调用一次viewDidLoad();但是,在首次实例化控制器时,不一定要创建内容视图。相反,它是在系统或任何代码第一次访问控制器的视图属性时延迟创建的。

您在加载中查看时将获取您的数据。

如果您希望在视图显示时刷新数据,那么我可以使用。

  

viewWillAppear() - 在视图控制器的内容视图添加到应用程序的视图层次结构之前调用。使用此方法可以触发在屏幕上显示内容视图之前需要执行的任何操作。尽管名称,只是因为系统调用此方法,它不保证内容视图将变得可见。视图可能被其他视图遮挡或隐藏。此方法仅表示内容视图即将添加到应用程序的视图层次结构中。

答案 1 :(得分:0)

我建议你创建一个视图控制器,它负责显示应用程序的加载,在后台它与你的后端同步。 拥有这样的视图控制器和加载指示器,您还可以显示更好的用户体验的百分比进度。 同步完成后,您可以导航到家庭控制器。

其次,如果您再次使用其他启动加载相同的数据。添加同步检查,以便不会再次下载相同的数据,同时保留应用程序的时间和空间。