访问变量 IBAction
Access variable IBAction
我需要帮助我的函数无法访问我的布尔值。我的开关 IBAction 应该更改它,但似乎没有更新我的第二个文件中的那个变量。
@IBAction func saveClubSwitchPressed(_ sender: UISwitch) {
UserDefaults.standard.set(sender.isOn, forKey: "ClubState")
if(sender.isOn == true)
{
clubSwitchBool = true
print(stateClubSwitchBool())
}else
{
clubSwitchBool = false
print(stateClubSwitchBool())
}
}
func stateClubSwitchBool() -> Bool
{
return clubSwitchBool
}
这是我在另一个文件中访问我的布尔值的函数:
override func loadView() {
super.loadView()
var clubSwitchBool1 = getSwitchBool()
}
你在哪里 declare/initialize clubSwitchBool 变量?
您可以简化您的函数,但让 clubSwitchBool 读取 isOn 属性。
@IBAction func saveClubSwitchPressed(_ sender: UISwitch) {
UserDefaults.standard.set(sender.isOn, forKey: "ClubState")
clubSwitchBool = sender.isOn
print(stateClubSwitchBool())
}
编辑:
让您的 clubSwitchBool1 从 UserDefaults 中读取:
clubSwitchBool1 = UserDefaults.standard.bool(forKey: "ClubState")
代码:
class ReglagesVC: UIViewController
{
var clubSwitchBool = false
@IBAction func saveClubSwitchPressed(_ sender: UISwitch)
{
UserDefaults.standard.set(sender.isOn, forKey: "ClubState")
clubSwitchBool = sender.isOn
print(stateClubSwitchBool())
}
func stateClubSwitchBool() -> Bool
{
return clubSwitchBool
}
}
和你的一样。它工作得很好。
现在您正在使用的函数:
func getSwitchBool() -> Bool
{
return ReglagesVC().clubSwitchBool
}
在上面的方法调用中,您使用的 ReglagesVC()
总是创建 ReglagesVC
的新实例。现在每次访问新创建的实例的 clubSwitchBool
时,它都会 return false
.
这就是您每次获得 false
的原因。
我需要帮助我的函数无法访问我的布尔值。我的开关 IBAction 应该更改它,但似乎没有更新我的第二个文件中的那个变量。
@IBAction func saveClubSwitchPressed(_ sender: UISwitch) {
UserDefaults.standard.set(sender.isOn, forKey: "ClubState")
if(sender.isOn == true)
{
clubSwitchBool = true
print(stateClubSwitchBool())
}else
{
clubSwitchBool = false
print(stateClubSwitchBool())
}
}
func stateClubSwitchBool() -> Bool
{
return clubSwitchBool
}
这是我在另一个文件中访问我的布尔值的函数:
override func loadView() {
super.loadView()
var clubSwitchBool1 = getSwitchBool()
}
你在哪里 declare/initialize clubSwitchBool 变量?
您可以简化您的函数,但让 clubSwitchBool 读取 isOn 属性。
@IBAction func saveClubSwitchPressed(_ sender: UISwitch) {
UserDefaults.standard.set(sender.isOn, forKey: "ClubState")
clubSwitchBool = sender.isOn
print(stateClubSwitchBool())
}
编辑:
让您的 clubSwitchBool1 从 UserDefaults 中读取:
clubSwitchBool1 = UserDefaults.standard.bool(forKey: "ClubState")
代码:
class ReglagesVC: UIViewController
{
var clubSwitchBool = false
@IBAction func saveClubSwitchPressed(_ sender: UISwitch)
{
UserDefaults.standard.set(sender.isOn, forKey: "ClubState")
clubSwitchBool = sender.isOn
print(stateClubSwitchBool())
}
func stateClubSwitchBool() -> Bool
{
return clubSwitchBool
}
}
和你的一样。它工作得很好。
现在您正在使用的函数:
func getSwitchBool() -> Bool
{
return ReglagesVC().clubSwitchBool
}
在上面的方法调用中,您使用的 ReglagesVC()
总是创建 ReglagesVC
的新实例。现在每次访问新创建的实例的 clubSwitchBool
时,它都会 return false
.
这就是您每次获得 false
的原因。