swift - 如何保存切换,甚至我更改TableViews

时间:2018-03-19 00:25:16

标签: ios swift uitableview nsuserdefaults uiswitch

import UIkit
// ViewController file
class ViewController: UITableViewController, UIViewController{

    @IBAction func aaaSwitch(_ sender: UISwitch) {
        if (sender.isOn == true)
        {
            ClickCounterA+=2
            UserDefaults.standard.set(aaaSwitch, forKey: "aaaSwitch")
            UserDefaults.standard.bool(forKey: "aaaSwitch")
            defaults.set(aaaSwitch, forKey: "aaaSwitch")
        }
        else
        {
            defaults.set(aaaSwitch, forKey: "aaaSwitch")
        }
    }

我在tableview中更改了开关(aaaSwitch)并转到另一个tableview。之后,我返回到第一个tableview,切换是我更改之前的语句。换句话说,我无法保存switch语句。

2 个答案:

答案 0 :(得分:0)

问题是你将aaaSwitch(方法)传递给UserDefaults设置调用。您希望传入一个值,在本例中为布尔值。

<vue-recaptcha sitekey="Your key here">
    <button>Click me</button>
</vue-recaptcha>

如果您真的想归档整个UISwitch,则需要先将其转换为NSData(并且您可能需要提出一个算法来实现)。我认为没有必要这样做。当然你只想坚持其开/关状态,所以使用上面的代码。

答案 1 :(得分:0)

class ViewController: UITableViewController, UIViewController{
        @IBOutlet weak var aaaswitch: UISwitch!
        override func viewWillAppear(_ animated: Bool) {
                aaaswitch.isOn = UserDefaults.standard.bool(forKey: "aaaSwitch")
        }
        @IBAction func aaaSwitch(_ sender: UISwitch) {
            if (sender.isOn == true)
                {
                        ....
                }
                else
                {
                        ....
                }
                UserDefaults.standard.set(sender.isOn, forKey: "aaaSwitch")
        }
 }