实现从 viewController 到 DataManager 类的委托
Posted
技术标签:
【中文标题】实现从 viewController 到 DataManager 类的委托【英文标题】:implement delegation from a viewController to a DataManager class 【发布时间】:2018-03-22 16:33:06 【问题描述】:我需要将一个对象(数据)从视图控制器(嵌入在导航控制器中)发送到应该管理这些数据的类(或结构)。 为了实现委托协议,如何从类(没有任何类型的链接(没有 segue)或更好的结构)中获取对这个 viewController 的引用与 viewControllers 集?
我使用 swift,一个故事板,我寻找任何可以帮助我理解如何解决这个问题的指针或文档。我是初学者,如果这个问题太琐碎,我很抱歉。
我只需要一个指向相应文档的链接,非常感谢。
【问题讨论】:
“类(或结构)”是如何创建的?什么对象负责创建和存储它? 类或结构是独立于视图控制器创建的,它是帮助类或模型类。我构建它是为了管理来自 viewControllers 的数据,然后是为了协调流程。 分享你的代码你如何展示你ViewController
以及你的DataManager
对象在哪个类中
“类或结构是独立于视图控制器创建的”。所以呢?有三种可能性:您有一个辅助类的全局变量(单例)实例,或者您在某处有创建该实例的代码,或者您在情节提要或 xib 中创建该实例。您需要编辑您的问题以说明实例是如何创建的。
这是一个相当大的代码,它实现了 24 小时的食物召回,但基本的很简单:我有几个视图控制器可以从用户那里获取数据。当获得一个经过验证的数据时(在最后一个视图控制器中),我对其他一些数据重复该操作。我想创建一个独立的类(或多个类)来获取数据并启动适当的操作来验证并向用户提供建议。
【参考方案1】:
这个答案可能会对你有所帮助。您可能想了解更多有关 ios 中委托模式的信息。 https://***.com/a/42977875/2396199
【讨论】:
你会建议为辅助类创建一个单例类吗? 根据您的 cmets,如果该类仅执行验证,那么我将创建类方法并使用类名调用这些方法。例如:Utilities.swift 有方法 performValidation()。然后我会调用 Utilities.performValidation() 但是从问题来看,您似乎也想从助手委托给视图控制器,所以创建一个单例就足够了。以上是关于实现从 viewController 到 DataManager 类的委托的主要内容,如果未能解决你的问题,请参考以下文章
dealloc 方法从 Xcode 4 中的 ViewController 实现文件模板中消失了吗?
SWIFT:从定义 tableView 到 tableViewCell 的 ViewController 通信数据
推送通知:从 AppDelegate 导航到 ViewController
从@IBDesignable UIView didSelectRowAt UITableView 导航到 ViewController