交换按钮单击以交换用户默认值,并使用SWIFT将值更新到tableView UI中



我的情况是,我正在尝试交换NSUserdefault值和restore IT immediately。在这里,我有单个按钮单击操作,一旦Uibutton单击,我需要交换我的UserDefault值并将其还原。例如:存储在B和B Values中的值存储到A中。它应该一次又一次地工作。我使用的viewcontroller的存储值。因此,存储需要快速更新。

我的代码

 // MARK: Switch Language
    @IBAction func swapClick(_ sender: Any) {
            // I need to do exchange value and restore it immediately 
    UserDefaults.standard.set(default_from_ID, forKey: "To_ID") // from here
        UserDefaults.standard.set(default_to_ID, forKey: "From_ID") // to here
    }

tableview委托

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = self.translation_tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TranslationCustomCell
        cell.from_label.text = "(default_from_Name ?? "")"
        cell.to_label.text = "(default_to_Name ?? "")"
        return cell
  }

您需要先获取值,然后通过交换键

来设置值
@IBAction func swapClick(_ sender: Any) {
    let values = (UserDefaults.standard.string(forKey: "DFrom_Name"),UserDefaults.standard.string(forKey: "DTo_Name"))
    UserDefaults.standard.setValue(values.1, forKey: "DFrom_Name")
    UserDefaults.standard.setValue(values.0, forKey: "DTo_Name")
    self.translation_tableview.reloadData()
}
UserDefaults.standard.setValue("London", forKey: "DFrom_Name")
UserDefaults.standard.setValue("NewYork", forKey: "DTo_Name")
print(UserDefaults.standard.string(forKey: "DFrom_Name"))//Optional("London")
print(UserDefaults.standard.string(forKey: "DTo_Name"))//Optional("NewYork")
swapClick(UIButton())
print(UserDefaults.standard.string(forKey: "DFrom_Name"))//Optional("NewYork")
print(UserDefaults.standard.string(forKey: "DTo_Name"))//Optional("London")