Swift:如何在实例化 viewController 之前加载 Firebase 数据?

Posted

技术标签:

【中文标题】Swift:如何在实例化 viewController 之前加载 Firebase 数据?【英文标题】:Swift: How do I load Firebase data before a viewController is instantiated? 【发布时间】:2017-07-21 06:08:56 【问题描述】:

我的应用程序的根视图是一个 UITabBarController。

在第二个选项卡中,我有一个 UICollectionView,它正在 viewDidLoad 中从 Firebase 加载数据。

我正在尝试根据 viewController 中的数据为第二个 tabBar 项设置 badgeValue,但在点击第二个标签栏之前不会加载数据。

如何在实例化之前为第二个 viewController 加载数据?我应该在其他地方加载它吗?

【问题讨论】:

【参考方案1】:

如果您想在应用程序启动时或从另一个控制器设置badgeValue,那么您需要在全局方法中调用API/Webservice,例如从Appdelegate 或任何共享实例,然后从该方法设置badgeValue

【讨论】:

好的,所以如果我从 AppDelegate 观察 Firebase 中的 .value,并且将一个新对象添加到对象数组中,则更改会反映在 AppDelegate 中。如何将该新对象发送到 viewController? 创建一个仅返回更新记录计数的 Web 服务,并仅使用该 Web 服务来设置 badgeValue。否则,您可以通过 postNotification 方法触发通知,这不是一个好方法,因为我猜您只需要特定视图控制器的记录。

以上是关于Swift:如何在实例化 viewController 之前加载 Firebase 数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过以编程方式将根(选项卡 ViewController)从子选项卡设置为未实例化的不同 VC

如何实例化第二个 ViewController 并停止第一个 ViewController 的方法

如何在同一个 ViewController 中初始化两个 NSObject 实例 - Swift

如何从 Swift 中的 ViewController 获取 UIView 子类实例

从 SceneDelegate 实例化时如何获取完整的 viewController

如何获取对已经实例化的 ViewController 的引用?