【问题标题】:implement delegation from a viewController to a DataManager class实现从 viewController 到 DataManager 类的委托
【发布时间】:2018-03-22 16:33:06
【问题描述】:

我需要将一个对象(数据)从视图控制器(嵌入在导航控制器中)发送到应该管理这些数据的类(或结构)。 为了实现委托协议,如何从类(没有任何类型的链接(没有 segue)或更好的结构)中获取对这个 viewController 的引用与 viewControllers 集?

我使用 swift,一个故事板,我寻找任何可以帮助我理解如何解决这个问题的指针或文档。我是初学者,如果这个问题太琐碎,我很抱歉。

我只需要一个指向相应文档的链接,非常感谢。

【问题讨论】:

  • “类(或结构)”是如何创建的?什么对象负责创建和存储它?
  • 类或结构是独立于视图控制器创建的,它是帮助类或模型类。我构建它是为了管理来自 viewControllers 的数据,然后是为了协调流程。
  • 分享你的代码你如何展示你ViewController以及你的DataManager对象在哪个类中
  • “类或结构是独立于视图控制器创建的”。所以呢?有三种可能性:您有一个辅助类的全局变量(单例)实例,或者您在某处有创建该实例的代码,或者您在情节提要或 xib 中创建该实例。您需要编辑您的问题以说明实例是如何创建的。
  • 这是一个相当大的代码,它实现了 24 小时的食物召回,但基本的很简单:我有几个视图控制器可以从用户那里获取数据。当获得一个经过验证的数据时(在最后一个视图控制器中),我对其他一些数据重复该操作。我想创建一个独立的类(或多个类)来获取数据并启动适当的操作来验证并向用户提供建议。

标签: ios swift delegates


【解决方案1】:

这个答案可能会对你有所帮助。您可能想了解更多有关 iOS 中委托模式的信息。 https://stackoverflow.com/a/42977875/2396199

【讨论】:

  • 你会建议为辅助类创建一个单例类吗?
  • 根据您的 cmets,如果该类仅执行验证,那么我将创建类方法并使用类名调用这些方法。例如:Utilities.swift 有方法 performValidation()。然后我会调用 Utilities.performValidation()
  • 但是从问题来看,您似乎也想从助手委托给视图控制器,所以创建一个单例就足够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多