我已经对如何更新核心数据进行了一些研究,并且我找到了setValue()函数。
我现在正在努力调用此功能。显然我会在数据发生变化时调用它:
if (textField.text != detail!.valueForKey("name")!.description {
detail?.setValue(textField.text, forKey: "name")
}
我会把它放在哪里? 我怀疑它属于viewDidLoad和configureView。 这是我的detailViewController文件。
textField是:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TextFieldTableViewCell
let textField: UITextField = cell.textField
let detail = self.detailItem
textField.text = detail!.valueForKey("name")!.description
return cell
}
textFieldDidEndEditing()解决了检查值是否已更改并保存的问题。
传递一个作为UITableViewCell子类的textField在此解决:How to call textField that is a inside of UITableViewCell (swift)
答案 0 :(得分:0)
class ViewController: UIViewController,UITextFieldDelegate {
@IBOutlet weak var txtName: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
txtName.delegate = self
}
func textFieldDidEndEditing(_ textField: UITextField) {
print("Tells the delegate that editing ends for specific textfield")
if (textField.text != detail!.valueForKey("name")!.description {
detail?.setValue(textField.text, forKey: "name")
}
}
}
希望这会有所帮助..