如何在切换视图控制器后保持来自 iCloud(CloudKit)的数据加载

How to keep data from iCloud(CloudKit) loaded after switching view controllers

我正在使用 CloudKit 制作应用程序,但我最近 运行 遇到了问题。在我的应用程序中,主视图控制器一加载,它就会关闭并从 iCloud 获取数据。问题是,当我转到另一个视图控制器然后回到主视图控制器时,它会再次开始获取。我希望能够使用已经获取的数据,有什么办法可以做到这一点吗?也许我暂时将它保存到 CoreData 中?

有几种方法可以解决这个问题。

您将希望将数据和上下文从一个视图控制器传递到下一个视图控制器。确保删除第二个视图控制器中的代码以重新获取数据。

我选择的方式是像这样在 prepareForSegue 函数中将数据从一个传递到下一个。

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
    {
        if segue.identifier == "mysegue"
        {           let destinationViewController = (segue.destinationViewController as! UITabBarController) as! SecondViewController
                    destinationViewController.myData = myData
                    destinationViewController.context = stack.context
        }
   }