Невозможно получить значения из ячейки быстрого просмотра таблицы swift 4 - PullRequest
0 голосов
/ 13 сентября 2018

В моем приложении у меня есть таблица с настраиваемой ячейкой прототипа с 3 метками.Из 3 ярлыков я хочу, чтобы только один из них был обновляемым.Когда пользователь выбирает ячейку и нажимает кнопку редактирования, появляется предупреждение с текстовым полем для изменения значения.Таким образом, предупреждение появляется, но текстовое поле не содержит значение метки, и если я введу новое значение и нажму «Сохранить», оно не обновит значение ячейки.Вот мой кодЧто я не правильно делаю?Это для iOS 12.

    @IBAction func editWeight(_ sender: Any) {

    let alertController = UIAlertController(title: "Update Weight", message: nil, preferredStyle: .alert)

    //getting the index path of selected row
    let indexPath = tableView.indexPathForSelectedRow

    //getting the current cell from the index path
    let currentCell = tableView.cellForRow(at: indexPath!)! as UITableViewCell

    alertController.addTextField(configurationHandler:  { (textField) in
        textField.keyboardType = .numbersAndPunctuation
        textField.text = ""
   })

    alertController.addAction(UIAlertAction(title: "Update", style: .default, handler: { (updateAction) in
        let backgroundContext = self.appDelegate.persistentContainer.newBackgroundContext()
        self.appDelegate.persistentContainer.viewContext.automaticallyMergesChangesFromParent = true

        let weightObject = Weights(context: backgroundContext)
        //let indexPath = self.tableView.indexPathForSelectedRow

        weightObject.weight = alertController.textFields![0].text!

        do {
            try backgroundContext.save()
            self.tableView.reloadData()
        } catch {
            print(error.localizedDescription)
        }
    }))

    alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))

    present(alertController, animated: true, completion: nil)
}
...