gpt4 book ai didi

ios - 保持更新的模型类并从 Swift 中的多个 View Controller 访问它?

转载 作者:行者123 更新时间:2023-11-28 08:05:42 24 4
gpt4 key购买 nike

我正在使用 swift 和 xcode 制作一个应用程序。在其中我有一个包含用户信息的模型类。我想用一个 View Controller 显示其中一些信息,在另一个 View Controller 中更新/更改该信息,并使所有 View 与模型类中的任何内容保持同步。

有人告诉我可以使用单例,但不推荐使用。是否有更好、更可接受的方式从多个 View Controller 访问模型类,而无需在它们之间进行 segue(我使用的是 tabBarViewController)?

最佳答案

如果您想要“纯粹”,那就是遵循 Apple 最佳实践,其中 View Controller 永远不会硬编码到全局模型(在我看来,这实际上是一种痛苦而不是值得的):

  1. 子类 UITabBarController 以将模型实例包含为存储属性(也许 private(set) 是此处的最佳访问级别,但无论您希望将其安全地公开给其他类——当然,仅作为协议(protocol)类型公开。)

  2. 不要忘记将 Storyboard Tab VC 的标识类设置为这个新的子类,否则您的性感代码将无法运行。

  3. 在您的(希望是所有子选项卡 VC 的基类)View Controller 类中,挂接到 didMoveToParentViewController(parent: UIViewController)。轻轻向下转换 (as?) 到上面的 UITabBar 子类,并提取模型,并将引用复制到本地存储的属性中。它会在正确的时间发生,就像您落入母公司 VC 的柔软怀抱中一样。

幸福!

关于ios - 保持更新的模型类并从 Swift 中的多个 View Controller 访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45203943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com