Нажмите кнопку своп, чтобы обменять пользовательские значения по умолчанию и обновить значения в пользовательском интерфейсе TableView с помощью Swift - PullRequest
0 голосов
/ 20 мая 2019

Мой сценарий, я пытаюсь обменять NSUserdefault значения и restore это immediately. Здесь у меня есть одно нажатие кнопки, после нажатия кнопки UIButton мне нужно поменять значения по умолчанию и восстановить их. Например: A Сохранение значений в B и B Values Store в 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
  }

1 Ответ

0 голосов
/ 20 мая 2019

Сначала нужно получить значения, а затем ввести значение, поменяв местами клавиши

@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")
...