У меня есть UISlider внутри настраиваемых ячеек tableView. В ячейке также есть UILabel, отображающий значение ползунков. На данный момент у меня есть это, так что я могу обновить значение ползунков до firestore, а также в ярлыке. Однако, когда я ухожу с экрана / приложения и снова загружаю экран, я не могу загрузить предыдущее значение ползунков в ползунок. Я все еще могу обновить значение ползунков, и оно все равно будет перенесено в firestore, и все работает хорошо. Я попытался загрузить значение из firestore в ползунок при первом запуске экрана, который работает отлично, но он не позволяет мне обновлять ползунок на экране, когда я это делаю, но он обновляется в firestore. Было бы идеально, если бы данные загружались из хранилища огня при первой загрузке экрана, а затем я могу обновить ползунок, и он будет работать в приложении и в хранилище огня. Любая помощь будет принята с благодарностью! Большое спасибо!!
ViewController
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
cell.slider.tag = indexPath.row
cell.slider.addTarget(self, action: #selector(ViewController.sliderChange(sender:)), for: .valueChanged)
cell.sliderLabel.text = String(Int(cell.slider.value))
// code that loads values when screen is first launched but then doesn't let me update the onscreen values
cell.slider.value = Float(array[indexPath.row].number)
return cell
}
@objc func sliderChange(sender: UISlider) {
let currentValue = Int(sender.value)
let row = sender.tag
let Id = array[row].documentID
let userRef = db.collection("Users").document(user!)
userRef.collection("Friends").document(Id).updateData(["number" : currentValue]) {
error in
if let error = error {
print("Error adding document: \(error.localizedDescription)")
} else {
print(currentValue)
}
}
self.tableView.reloadData()
}
TableViewCell
class TableViewCell: UITableViewCell {
@IBOutlet weak var sliderLabel: UILabel!
@IBOutlet weak var slider: UISlider!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}