我最近一直试图将我的应用程序迁移到MVC格式,我想知道如何访问View Controller的变量(尝试从.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的变量?
像this这样的解决方案也不起作用,因为我有多个具有相同变量名的类。
我很感激任何帮助。谢谢!
答案 0 :(得分:2)
如果您正在实施MVC,那么您希望在多个视图控制器之间共享的数据应包含在模型中,并实例化为单例并全局访问(如UserDefaults)或从一个控制器传递到另一个控制器作为呈现新VC时的参数。
根据定义,View Controllers不应该访问彼此的变量。