我在Swift中开发相当新,而且我似乎正在努力解决其中一个关键概念。访问/传递多个ViewControllers之间的公共数据
我正在寻找在不同的UIViewControllers之间传递数据,让他们都可以访问和操作它。
例如,在我的应用程序中,我创建了一个包含项目数组的简单数据存储类。我希望这个数组可以被所有ViewController访问。
我初始化中的AppDelegate店:
var itemStore = ItemStore()
然后我创建第一个UIViewController中,并通过在存储,以便它可以访问它:
FirstViewController(itemStore: ItemStore)
因此,要做到这一点,我需要对FirstViewController的init进行更改,以便它能够接受itemStore作为参数。
然后,我想将该数据传递给SecondViewController,然后传递给ThirdDataController。
我似乎没有必要编辑每一个UIViewController类,以便它接受itemStore作为参数。
我在这里有什么选择?有些人告诉我将数据存储为AppDelegate的一个属性,以便所有人均可访问。但是,这似乎不是正确的做法。
有什么建议吗?
因此,将下一个ViewController的属性设置为您传递的数据。然而,我觉得你必须一遍又一遍地传递它(如果你从AViewController到BViewController到CViewController),这似乎很奇怪。有没有办法在全球范围内访问它? –
@BrianMarsh是的,只是在顶层声明它。如果你希望它只在这两个视图控制器上可用,请将它们放在同一个swift文件中,并声明你在这个文件的顶层隐藏了var private –
@BrianMarsh,你也可以将它保存在UserDefault上。或本地数据库或.Plist文件..有很多方法。在这里我已经给你实现它的最简单的方法。 – Mehul