【发布时间】:2017-12-18 22:35:19
【问题描述】:
我的应用实现了一个导航栏:它有一个主视图和一个设置视图。在设置视图中,我使用 UserDefaults 保存了一些用户的首选项。然后当我回到主视图时,新的首选项不会出现。它仅在我重新打开应用程序后出现。我在 ViewController 的 viewDidLoad 方法中加载用户默认值。从设置视图返回到主视图后,似乎不会再次调用 viewDidLoad 方法。那么我应该在哪里加载来自用户默认值的数据呢?
这是我加载首选项的方式:
override func viewDidLoad() {
super.viewDidLoad()
numberOfPeople = defaults.double(forKey: "numberOfPeopleDefault")
tipPercentage = defaults.double(forKey: "tipPercentageDefault") / 100.0
}
【问题讨论】:
-
你不应该使用 UserDefaults 在视图控制器之间传递数据
-
他在谈论“设置”,他可能需要将这些变量存储在同一个地方,可能是缓存,或者其他什么。关键是,由于
viewDidLoad只被调用一次,previous视图控制器的“刷新”不能在那里完成。