Swift 如何访问另一个视图控制器';在不创建新实例的情况下创建变量?

Swift 如何访问另一个视图控制器';在不创建新实例的情况下创建变量?,swift,Swift,我最近一直在尝试将我的应用程序迁移到MVC格式,我想知道如何在不创建视图控制器的新实例的情况下访问视图控制器的变量(尝试从.swift文件访问它们)。例如: HomePageViewController().objectIDs.append(post.objectId!) HomePageViewController().postTitles.append(post["Title"] as! String) HomePageViewController().imageFiles.appe

我最近一直在尝试将我的应用程序迁移到MVC格式,我想知道如何在不创建视图控制器的新实例的情况下访问视图控制器的变量(尝试从.swift文件访问它们)。例如:

HomePageViewController().objectIDs.append(post.objectId!)


HomePageViewController().postTitles.append(post["Title"] as! String)


HomePageViewController().imageFiles.append(post["imageFile"] as! PFFile)


HomePageViewController().descriptions.append(post["description"] as! String)


HomePageViewController().userNames.append(post["originalPosterUserName"] as! String)


HomePageViewController().numOfComments.append(String(describing: post["numberOfComments"]!))


print(HomePageViewController().userNames, "This is a test")
末尾的print语句打印“[]这是一个测试”,数组中没有数据。不过,在HomePageViewController文件中,这项功能非常有效。我假设这不起作用,因为我创建了HomePageViewController的一个新实例,并更改了这些变量,而不是当前变量。因此,我的问题是,如何在不需要创建新实例的情况下更改当前HomePageViewController的变量

像这样的解决方案也不起作用,因为我有多个具有相同变量名的类


我非常感谢你的帮助。谢谢

如果您正在实现MVC,您希望在多个视图控制器之间共享的数据应该包含在模型中,并且可以作为单例实例化并全局访问(与UserDefaults一样),或者在呈现新VC时作为参数从一个控制器传递到另一个控制器


根据定义,视图控制器不应该访问彼此的变量

视图控制器不应该从模型以外的任何地方访问数据。好的,这是有意义的。因此,变量应该驻留在模型类中,我应该从视图控制器文件访问它们,以便更新/管理UI?这是正确的。您可以在代码中或使用KVO显式访问它们。希望我的回答有帮助。是的,这让我明白了。谢谢你的帮助!