【发布时间】:2017-08-29 11:20:01
【问题描述】:
我的问题是,一旦您离开设置页面,我在设置页面中的 UISwitch 就会一直恢复到关闭状态,这意味着无法正确使用该开关。我做了一些搜索,发现了这个问题和答案: How do i keep UISwitch state when changing ViewControllers?
我阅读了这个页面并将答案添加到我的代码中:
@IBOutlet weak var NumSwitch: UISwitch!
override func viewDidLoad() {
super.viewDidLoad()
NumSwitch.isOn = UserDefaults.standard.bool(forKey: "switchState")
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func SaveSwitchPressed(_ sender: UISwitch) {
UserDefaults.standard.set(sender.isOn, forKey: "switchState")
}
但是,当我运行此代码时,我得到:
Thread 1: EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP,subcode=0x0)
(突出显示该行:'NumSwitch.isOn = UserDefaults.standard.bool(forKey: "switchState")')
[我使用的是 Xcode 8.2.1]
我已将两个 UIViewController 连接到一个 ViewController 类,所以这可能是导致问题的原因。我尝试了许多其他方法来使我的开关正常工作,而这个似乎对其他人有用。有什么明显的我做错了吗?
[我本来希望将其添加为对上述问题的评论,但我没有这样做的声誉]
【问题讨论】:
-
检查
NumSwitch是否为零? -
你好@Mike Alter,我应该怎么做?我对 swift 和 xcode 比较陌生
-
验证
print(NumSwitch)不是nil -
所以我应该创建一个 UI 标签?
-
不,检查您的
NumSwitch不是nil