如何从 SWIFT 3 中的另一个 ViewController 检查 UISwitch 的状态?
How to check the state of an UISwitch from another ViewController in SWIFT 3?
我想检查另一个 View Controller
的 UISwitch
的状态。而如果switch
是on
,那么我希望View
的backgroundColor
是红色的,否则应该是绿色的。我尝试使用 UserDefaults
,但我不知道从什么开始。任何帮助将不胜感激!
注意:这是 SWIFT 3 的版本:
首先,我将 switch
的 initial state
设置为 off。我添加了一个按钮,它将我们带到 secondViewController 并检查开关的状态。这是我的代码(用于包含开关的视图控制器):
@IBOutlet weak var switch1: UISwitch!
let defaults = UserDefaults.standard
var switchON : Bool = false
@IBAction func checkState(_ sender: AnyObject) {
if switch1.isOn{
switchON = true
defaults.set(switchON, forKey: "switchON")
}
if switch1.isOn == false{
switchON = false
defaults.set(switchON, forKey: "switchON")
}
}
对于secondView
:
let defaults = UserDefaults.standard
override func viewDidLoad() {
super.viewDidLoad()
if defaults.value(forKey: "switchON") != nil{
let switchON: Bool = defaults.value(forKey: "switchON") as! Bool
if switchON == true{
self.view.backgroundColor = UIColor.red()
}
else if switchON == false{
self.view.backgroundColor = UIColor.green()
}
}
}
我想检查另一个 View Controller
的 UISwitch
的状态。而如果switch
是on
,那么我希望View
的backgroundColor
是红色的,否则应该是绿色的。我尝试使用 UserDefaults
,但我不知道从什么开始。任何帮助将不胜感激!
注意:这是 SWIFT 3 的版本:
首先,我将 switch
的 initial state
设置为 off。我添加了一个按钮,它将我们带到 secondViewController 并检查开关的状态。这是我的代码(用于包含开关的视图控制器):
@IBOutlet weak var switch1: UISwitch!
let defaults = UserDefaults.standard
var switchON : Bool = false
@IBAction func checkState(_ sender: AnyObject) {
if switch1.isOn{
switchON = true
defaults.set(switchON, forKey: "switchON")
}
if switch1.isOn == false{
switchON = false
defaults.set(switchON, forKey: "switchON")
}
}
对于secondView
:
let defaults = UserDefaults.standard
override func viewDidLoad() {
super.viewDidLoad()
if defaults.value(forKey: "switchON") != nil{
let switchON: Bool = defaults.value(forKey: "switchON") as! Bool
if switchON == true{
self.view.backgroundColor = UIColor.red()
}
else if switchON == false{
self.view.backgroundColor = UIColor.green()
}
}
}