Swift 访问另一个类而不创建新实例

Posted

技术标签:

【中文标题】Swift 访问另一个类而不创建新实例【英文标题】:Swift access another class without creating a new instance 【发布时间】:2015-07-07 18:22:26 【问题描述】:

我有一个带有视图的 ios 应用程序,其中包含一个包含 tableView 的容器。我想从这个 tableView 控制器访问一个函数,但我不想在这个过程中创建这个 tableView 的新实例。我试过了,它创建了一个新实例,这意味着我无法更改视图上显示的变量。

如何从我的 FirstViewController 访问我的 BucketTableViewController 中的函数 updateBuckets,它已经在运行一个实例?

目前我正在尝试self.BucketTableViewController.updateBuckets(self.bigArray) 并收到错误FirstViewController 没有名为BucketTableViewController 的成员

【问题讨论】:

一些示例代码会非常有帮助,但是从阅读这里开始,听起来您应该实现delegate pattern。 【参考方案1】:

查看最近的答案: how can i update other controllers' UI in swift?

通知可能是您最好的选择。在您的 FirstViewController 中创建一个名为“dataUpdated”之类的通知。在您的 BucketTableViewController 中,您可以查看该通知。

或者,如果您要更新的“UI”只是您的表格本身,您应该只更新数据源,然后在您的表格视图上调用 reloadData()

【讨论】:

以上是关于Swift 访问另一个类而不创建新实例的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 从另一个函数访问 UIView 的实例

如何使用来自目标c的同名类而不是swift

为啥我需要创建 Line 的新实例,而不是在 Kivy 中简单地更新或添加和删除它

为啥我需要创建 Line 的新实例,而不是在 Kivy 中简单地更新或添加和删除它

编码的 UI 测试:创建多个单独的 UIMap 类而不只是多个部分 UIMap 类的原因是啥?

如何创建 Python Pyramid 视图类而不需要为每个方法指定“名称”