我有两个ViewControllers:MainVC
和SettingsVC
。
MainVC
的行为取决于SettingsVC
中运行时设置的值。当从SettingsVC
转换为MainVC
时,我会通过prepareForSegue()
移交该值。没问题!
但是当再次加载SettingsVC
以再次设置值时,将记住最后一个值的最佳方式是什么?
是否可能是创建全局变量的方法,MainVC
和SettingsVC
都可以访问?
答案 0 :(得分:1)
是的,您可以在类之外使用import UIKit
var param = 1
class MainVC: UIViewController {
...
}
来使该变量成为全局变量。如果您的SettingVC
MainVC
然后这个变量param在你的settingVC中可见。
但是,更好的做法是将变量传递给segue。当您转到prepareForSegue()
时,只需将设置值从alwaysRunning
移回{{1}}。如果你想在segue回来时传递价值,你正在寻找一个放松的segue。 missing features是一个教程。
答案 1 :(得分:1)
您可以将UserDefaults
用于此目的。
用于存储的用户默认数据库的接口 在给定的应用程序的调用中持久保存键值对 设备
当你设置时,设置值:
// someVariable is the value you want to set
// someKey is the key to identify the value for the userDefault
UserDefaults.standard.set(someVariable, forKey: "someKey")
每当您想要获取值(从应用程序中的任何位置)时,请使用以下内容:
let value = UserDefaults.standard.value(forKey: "someKey")