【发布时间】:2018-05-16 12:22:55
【问题描述】:
我正在通过UserDefaults 将字符串值从我的 vc2 发送到 vc1。但是,当我通过后退按钮从 vc2 移回 vc1 时,该值不会更新。我在viewWillAppear 方法中获得了vc1 的价值。但我的价值没有更新。我通过 push 方法从 vc1 导航到 vc2。
这就是我在 vc2 中存储用户默认值的方式,
cartItems = cartItems + 1
print(cartItems)
let badgeCount = String(cartItems)
print(badgeCount)
let rightBarButton = self.navigationItem.rightBarButtonItem
let badge = String(badgeCount)
rightBarButton?.addBadge(text: badge)
UserDefaults.standard.set(badgeCount, forKey: "cartsItems")
UserDefaults.standard.synchronize()
在 vc1 中,我在 viewWillAppear 委托中得到这样的结果,
let count = UserDefaults.standard.string(forKey: "cartsItems")
print(count)
当我通过后退按钮从 vc2 回到 vc1 时,值永远不会更新,当我调用其他一些 vc 并且再次调用 vc1 时,它会得到更新。那时我如何更新价值?
【问题讨论】:
-
添加一些额外的代码
-
badgeCount是什么类型?是否有可能您正在设置一个整数但试图检索一个字符串? -
我已编辑,请检查。 @Anbu.karthik
-
UserDefaults不适合在控制器之间共享数据。使用回调、协议/委托或通知。 -
这么多
vc2和vc1让我感到困惑。能否请您告诉您在哪里设置值以及在哪里没有得到?
标签: ios swift userdefaults