Где разместить функцию обновления основных данных (swift) - PullRequest
0 голосов
/ 15 мая 2018

Я провел некоторое исследование о том, как обновлять данные ядра, и нашел функцию 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 () решает проблему проверки изменения значения и сохраняет его.

Передача textField, являющегося подклассом UITableViewCell, решается здесь: Как вызвать textField, являющийся внутренностью UITableViewCell (swift)

1 Ответ

0 голосов
/ 15 мая 2018
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")
    }
    }
}

Надеюсь, это будет полезно ..

...