0
所以我有一个选项卡式应用程序。在最后一个选项卡中,我有一个UISwitch,我希望它能够更改位于第一个选项卡中的UITableView的背景。所述开关被这样定义:修改位于另一个视图中的UISwitch的UITableView外观
@IBOutlet weak var darkModeSwitch: UISwitch!
然后用于设置UserDefaults动作:
@IBAction func setUserDefaults() {
let defaults = UserDefaults.standard
defaults.set(darkModeSwitch.isOn, forKey: "switchState")
}
和最后一个标签,从UserDefaults读取的的viewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
let defaults = UserDefaults.standard
let switchState = defaults.bool(forKey: "switchState")
darkModeSwitch.isOn = switchState
}
的UserDefaults部分作品。然而,标题中提到的事情没有。我试过设置一个全局变量:
var on = false
与在IBAction为下面的代码更改为true
:
if darkModeSwitch.isOn {
on = true
}
,并在UITableView中的viewDidLoad():
if on == true {
self.tableView.backgroundColor = UIColor.black
}
但它什么也没有做。你能帮我吗?
即使重新启动应用程序,颜色也不会更改。你确定我的代码是正确的吗? – user7395692
你是否在self.tableView.backgroundColor = UIColor.black处击中断点?如果是,那么switchState在darkModeSwitch.isOn = switchState时是否正确? –
我不明白你问什么。 – user7395692