Я использую текстовое поле, чтобы вручную изменить текст метки ячейки.Текст меняется хорошо, но когда я изменяю текст метки другой ячейки, он меняет текст как первой, так и второй метки.Я пытаюсь сделать так, чтобы после изменения текста метки ячейки он сохранялся таким образом, чтобы при изменении текста другой ячейки он только изменял текст метки ячейки CURRENT и сохранял его.
protocol ChangeVitalsViewControllerDelegate {
func changeVitalValue(vital: String, indexPath: Int)
}
protocol VitalViewControllerDelegate {
func selected()
}
class VitalCell: UICollectionViewCell {
@IBOutlet weak var vitalTitleLabel: UILabel!
var vitalDelegate: VitalViewControllerDelegate!
var buttonAction: ((Any) -> Void)?
@IBAction func infoButtonPressed(_ sender: Any) {
self.buttonAction?(sender)
vitalDelegate.selected()
}
}
class ManualVitalsInputViewController: UIViewController {
var delegate: ChangeVitalsViewControllerDelegate!
var currentIndex: Int!
@IBAction func saveButtonTapped(_ sender: Any) {
delegate.changeVitalValue(vital: enterInfoTextfield.text!, indexPath: currentIndex)
dismiss(animated: true)
}
}
class VitalsViewController: UIViewController{
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let vital = vitals[indexPath.row]
cell.imageView.image = vital.image
if indexPath.row == changedVitalIndexPath && changedManualVital != nil {
cell.vitalTitleLabel.text = changedManualVital
} else if manuallyChangedVitalsArrayIndexs.contains(indexPath.row){
cell.vitalTitleLabel.text = changedManualVital//pretty sure this is issue but not sure what else to put here
} else {
cell.vitalTitleLabel.text = vital.title
}
cell.vitalDelegate = self
cell.buttonAction = { sender in
self.currentIndexPath = indexPath.row
self.manuallyChangedVitalsArrayIndexs.append(self.currentIndexPath!)
}
}
}
extension VitalsViewController: VitalViewControllerDelegate {
func selected() {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ManualVitalsInputViewController") as! ManualVitalsInputViewController
vc.delegate = self
vc.currentIndex = currentIndexPath
present(vc, animated: false)
}
}
extension VitalsViewController: ChangeVitalsViewControllerDelegate {
func changeVitalValue(vital: String, indexPath: Int) {
self.changedManualVital = vital
self.changedVitalIndexPath = indexPath
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)// this is used to reload collectionview
}
}
Любая идея окак сохранить текст метки ячейки, чтобы он не менялся при изменении текста метки другой ячейки?