我应该在哪里从 UIViewController 中的 firebase 加载数据
Where should I load data in from a firebase in a UIViewController
我在尝试弄清楚应该将 Firebase 中的数据加载到我的应用程序的何处时遇到问题。我不确定在哪里将数据加载到 viewDidLoad 或 viewWillAppear。我目前正在 viewDidLoad 中加载数据,但是当我访问另一个视图控制器时,它将项目添加到 Firebase 以由前一个视图控制器显示。但是当我返回到原始视图控制器时,它不会在视图控制器中显示更新,该更新应该显示已更新或添加到数据库的项目。
您的案例的最佳选择是 viewWillAppear
,因为当您弹出时它会被调用,所以如果不是子数组,请确保释放数组并再次加载它添加观察
viewDidLoad()
仅在控制器加载到内存后被调用 一次 (更多信息在这里:https://developer.apple.com/documentation/uikit/uiviewcontroller/1621495-viewdidload)。
如果您想在返回控制器时更新数据,您应该在 viewWillAppear()
或 viewDidAppear()
中进行。后者在前者之后调用,因此您可以选择在何处调用更新函数。
此外,您还可以使用NotificationCenter
在有新数据时立即更新,而无需返回控制器。
我在尝试弄清楚应该将 Firebase 中的数据加载到我的应用程序的何处时遇到问题。我不确定在哪里将数据加载到 viewDidLoad 或 viewWillAppear。我目前正在 viewDidLoad 中加载数据,但是当我访问另一个视图控制器时,它将项目添加到 Firebase 以由前一个视图控制器显示。但是当我返回到原始视图控制器时,它不会在视图控制器中显示更新,该更新应该显示已更新或添加到数据库的项目。
您的案例的最佳选择是 viewWillAppear
,因为当您弹出时它会被调用,所以如果不是子数组,请确保释放数组并再次加载它添加观察
viewDidLoad()
仅在控制器加载到内存后被调用 一次 (更多信息在这里:https://developer.apple.com/documentation/uikit/uiviewcontroller/1621495-viewdidload)。
如果您想在返回控制器时更新数据,您应该在 viewWillAppear()
或 viewDidAppear()
中进行。后者在前者之后调用,因此您可以选择在何处调用更新函数。
此外,您还可以使用NotificationCenter
在有新数据时立即更新,而无需返回控制器。