如何保存按下按钮的状态?

时间:2018-01-09 22:08:13

标签: swift3 uibutton ios11 swift4

我尝试过很多代码,但不起作用。我想保存按下按钮的状态。

我有两个DL单选按钮,我用它来换两种语言的第一个按钮用于英语,第二个按钮用于阿拉伯语。我正在使用DLRadioButton框架,this framework I am using it

我希望当我打开viewcontroller时,按下按钮指示器的英语按钮,指示灯变为黑色,当我更改为阿拉伯语时,我想在关闭应用程序时保存按钮的状态并打开指示符钢按下,我试过使用,用户默认但没有用,例如这段代码。

override func viewDidLoad() {
    super.viewDidLoad()

    UserDefaults.standard.bool(forKey: "issaved")
    UserDefaults.standard.bool(forKey: "issaveded")
}

@IBAction func circularbutton(_ sender: UIButton) {
    if sender.tag == 0 ||  sender.isSelected == !sender.isSelected {
        let use = UserDefaults.standard
        use.set(  sender.isSelected, forKey: "issaved")
        use.synchronize()
    } else if sender.tag == 1 || sender.isSelected == sender.isSelected {
        let usee = UserDefaults.standard
        usee.set(  sender.isSelected, forKey: "issaveded")
        usee.synchronize()
    }
}

1 个答案:

答案 0 :(得分:1)

UserDefaults读取值的两行都不执行任何操作,因为您没有使用结果。

  • 为按钮创建两个插座,并在Interface Builder

    中连接它们
    @IBOutlet weak var button1 : UIButton!
    @IBOutlet weak var button2 : UIButton!
    
  • viewDidLoad中,将UserDefaults的值分配给按钮。

    override func viewDidLoad() {
        super.viewDidLoad()
    
        button1.isSelected = UserDefaults.standard.bool(forKey: "issaved")
        button2.isSelected = UserDefaults.standard.bool(forKey: "issaveded")
    }