【发布时间】:2019-04-25 04:52:32
【问题描述】:
我正在尝试保存我的单选按钮的状态,但它对我不起作用,知道该怎么做吗?我现在正在使用 userdefaults
class WTSettingsVC: UIViewController {
@IBOutlet weak var checkBttn: DLRadioButton!
@IBOutlet weak var checkBttn2: DLRadioButton!
var switchON : Bool = false
var button : Bool = false
let defaults = UserDefaults.standard
override func viewDidLoad() {
super.viewDidLoad()
checkBttn.isSelected = UserDefaults.standard.bool(forKey: "issaved")
checkBttn2.isSelected = UserDefaults.standard.bool(forKey: "issaved")
}
override func viewWillAppear(_ animated: Bool) {
super .viewWillAppear(animated)
self.setCommonNavigationBar(title: "Settings", largeTitle: true, tranpernt: false, tint: WTConstant.LMColors.greenTheme, fontColor: .white)
checkBttn?.isEnabled = UserDefaults.standard.bool(forKey: "switchState")
checkBttn?.addTarget(self, action: #selector(bttnAction(_:)), for: .touchUpInside)
}
@IBAction func bttnAction(_ sender: DLRadioButton) {
if sender.tag == 1 {
sender.isEnabled = true
switchON = true
defaults.set(switchON, forKey: "switchON")
}else if sender.tag == 2{
sender.isEnabled = true
switchON = false
defaults.set(switchON, forKey: "switchON")
}
}
}
UserDefaults.standard.set(sender.isEnabled, forKey: "switchState")
UserDefaults.standard.synchronize()
}
}
【问题讨论】:
-
UserDefaults使用了 3 个不同的密钥,并且不一致。您正在尝试对两个不同的按钮使用相同的键。并且不要使用synchronize(),它已被弃用。 -
为什么要用同一个键来存储两个不同按钮的状态?
-
我是新手,请告诉我该怎么做。我会很感激你的帮助
标签: swift userdefaults dlradiobutton