Мой вопрос похож на тот, что здесь: Обновление label.text во время выполнения
У меня есть viewcontroller, который содержит табличное представление с некоторыми текстовыми полями. Когда пользователь вводит количество и сумму в текстовые поля перспективы, я хочу обновить метку вне табличного представления после того, как я нажму клавишу возврата на последней клавиатуре во время выполнения
После некоторых исследований я понимаю, что некоторые из них получат функцию textfieldDidEndEditing делегата текстового поля в самой ячейке, но как я получу доступ к тексту метки из viewcontroller, чтобы я мог его обновить? Я предоставлю код, который у меня есть ниже.
import UIKit
import RealmSwift
class MaterialsCell: UITableViewCell, UITextFieldDelegate{
@IBOutlet weak var materialsDescription: UITextField!
@IBOutlet weak var materialsQuantity: UITextField!
@IBOutlet weak var materialsAmount: UITextField!
func saveMaterialsData() {
let saveMaterials = SPMaterialsRequest()
saveMaterials.setValue(self.materialsDescription!.text, forKey: "materialDescriptiopn")
saveMaterials.setValue(self.materialsQuantity!.text, forKey: "materialQuantity")
saveMaterials.setValue(self.materialsAmount!.text, forKey: "materialAmount")
let realm = try! Realm()
do {
try realm.write {
realm.add(saveMaterials)
print("added \(saveMaterials.materialDescription) to Realm Database")
print("added \(saveMaterials.materialQuantity) to Realm Database")
print("added \(saveMaterials.materialAmount) to Realm Database")
print("added \(saveMaterials.materialTotal) to Realm Database")
}
} catch {
print(error)
}
}
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
}
func textFieldDidEndEditing(_ textField: UITextField) {
}
}
import UIKit
import RealmSwift
class ServiceProMaterialsController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var materialsView: UITableView!
@IBOutlet weak var materialsTotal: UILabel!
var spMaterialsRequest: Results<SPMaterialsRequest>?
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier = "MaterialsCell"
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? MaterialsCell
else {
fatalError("Dequed Cell is not an instance of MaterialsCell")
}
cell.materialsDescription.text = ""
cell.materialsQuantity.text = ""
cell.materialsAmount.text = ""
return cell
}
}