【问题标题】:How to pass information from one controller to another using "UserDefaults.standard.set( )"如何使用“UserDefaults.standard.set()”将信息从一个控制器传递到另一个控制器
【发布时间】:2017-12-19 06:06:28
【问题描述】:

我正在尝试将信息从一个控制器传递到另一个控制器。我有两个控制器 1.ViewController 2.SecondController。我想使用 UserDefaults.standard.set 将信息从 ViewController 传递到 SecondController,我试图在其中获取 viewController 的引用,但我遇到错误说“为键值“控制器”分配非属性列表对象。下面是代码。请帮帮我

      let defaults:UserDefaults = UserDefaults.standard
        defaults.set(self, forKey: "controller")
        defaults.synchronize()

【问题讨论】:

  • UserDefaults 不应用于传递数据。只需设置您在视图控制器上定义的适当属性。
  • 而且你不需要打电话给synchronize
  • @DharmeshKheni 更好:stackoverflow.com/questions/5210535/…
  • Passing Data between View Controllers 的可能重复项。以前的 cmets 是正确的,您不应该使用 UserDefaults 在控制器之间传递数据。 “Apple方式”是使用segue。请参阅提供的解决方案链接。

标签: swift uiviewcontroller nsuserdefaults userdefaults


【解决方案1】:

SecondController中声明变量为

  var firstVC: ViewController?

然后在 ViewController 中将 self 分配给 firstVC,同时推送到 SecondController,例如:

  secondVC.firstVC = self

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多