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