Сохранить значение textField для ячейки textLabel (name)

Я собираюсь сделать что-то вроде этого /images//jAGsk.png

Поэтому, если пользовательские точки ввода – это будет сохранять точки на имя пользователя. Как это сделать? Я вставляю textField в tableViewCell с функциями. Вот код из файла tableViewCell

@IBOutlet weak var inputScore: UITextField! public func configure(text: Int?, placeholder: String) { inputScore.text = String(text!) inputScore.placeholder = placeholder inputScore.accessibilityValue = String(text!) inputScore.accessibilityLabel = placeholder } 

И вот код из файла VC

 public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "InputScore") as! InputScoreTableViewCell cell.textLabel?.text = usersIn[indexPath.row] cell.configure(text: 100, placeholder: "Score") return cell } public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return usersIn.count } 

Итак, как сохранить его на имя пользователя?

3 Solutions collect form web for “Сохранить значение textField для ячейки textLabel (name)”

Вы должны создать модель данных для своих пользователей:

 class User: NSObject { var points = 0 } 

А затем создайте массив пользователей в вашем контроллере вида:

 var users = [User]() 

Таким образом, вы можете сделать что-то подобное

 var user = users[indexPath.row] user.points = 100 print(user.points) // 100 

Затем вы можете отображать точки своих пользователей в своем представлении таблицы. Вы также можете назначить tag своим текстовым полям, равным indexPath.row чтобы вы могли легко работать с ними.

В верхней части модели пользователя, предоставляемой @Cesare, нам нужно изменить метод cellForRowAtIndexPath и реализацию вашей ячейки, добавив закрытие для события изменения данных и используя его

 @IBOutlet weak var inputScore: UITextField! fileprivate var fnDataWasUpdated : (Int?) -> Void = {_ in} //closure for data change notification public func configure(text: Int?, placeholder: String,_ fnListener: @escaping (Int?) -> Void) { inputScore.text = String(text!) inputScore.placeholder = placeholder inputScore.accessibilityValue = String(text!) inputScore.accessibilityLabel = placeholder //added delegate implementation for UITextField inputScore.delegate = self self.fnDataWasUpdated = fnListener } 

также необходимо, чтобы ваша ячейка применяла протокол UITextFieldDelegate

 extension InputScoreTableViewCell : UITextFieldDelegate { func textFieldDidEndEditing(_ textField: UITextField) { if let intValue = Int(textField.text) { self.fnDataWasUpdated(intValue) } } } 

Наконец, мы используем новое закрытие в вашей ячейке

 public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "InputScore") as! InputScoreTableViewCell let currUser = self.users[indexPath.row] cell.configure(text: currUser.points, placeholder: "Score",{ (newIntValue) in currUser.points = newIntValue }) return cell } 

Этот код не был протестирован, но я использовал основную концепцию в нескольких проектах, поэтому, если у вас есть какие-либо проблемы, пожалуйста, дайте мне знать

Я надеюсь, это поможет вам

Используйте метод DidSelectRowAtIndexPath для получения текста textLable ячейки в textField.

Ниже пример кода для этого:

 import UIKit class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { @IBOutlet var btnOK: UIButton! @IBOutlet var txtValue: UITextField! @IBOutlet var tblData: UITableView! let arrResult = NSMutableArray() override func viewDidLoad() { super.viewDidLoad() tblData.dataSource = self tblData.delegate = self btnOK.tag = 57775 btnOK.addTarget(self, action: #selector(applyEdit(sender:)), for: .touchUpInside) } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return arrResult.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = UITableViewCell(style: .default, reuseIdentifier: "cell") cell.textLabel?.text = arrResult[indexPath.row] as? String ?? "" return cell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { btnOK.tag = indexPath.row let cell: UITableViewCell = tableView.cellForRow(at: indexPath)! txtValue.text = cell.textLabel?.text setTitle() } func setTitle() { if btnOK.tag == 57775 { btnOK.setTitle("Add", for: .normal) }else{ btnOK.setTitle("Update", for: .normal) } } func applyEdit(sender: UIButton) { if sender.tag == 57775 { arrResult.add(txtValue.text ?? "") }else{ arrResult.removeObject(at: sender.tag) arrResult.insert(txtValue.text ?? "", at: sender.tag) sender.tag = 57775 setTitle() } txtValue.text = "" tblData.reloadData() } } 

вывод:

введите описание изображения здесь

  • Как удалить ячейку в tableView, нажав кнопку в ячейке? Использование coreData
  • Черный симулятор экрана при обновлении до Swift 3.0 и Xcode 8
  • swift 3 error
  • iOS PHPhotoLibrary не может сохранять видео в Camera Roll
  • Значение типа 'String' не имеет члена 'stringByTrimmingCharactersInSet'
  • Использование селектора в Swift 3
  • Как увеличить String.Index в swift3?
  • swift 3.0 с выбором Select All
  • Получение ошибки Неподдерживаемый тип гранта?
  • Не удается показать основные данные в табличном представлении Swift
  • Text Shadow - iOS, swift 3.0
  • Interesting Posts

    Динамическая настройка макета на UICollectionView вызывает необъяснимое изменение содержимогоOffset

    Unwind Segue не работает в iOS 8

    не удалось найти PDF-заголовок: «% PDF» не найден

    Формат строки iOS в минутах и ​​секундах

    Запись в NSOutputStream приводит к высокому использованию процессора

    Когда мое приложение возвращается из галереи, оно имеет стандартные цвета навигатора

    Преимущества и недостатки использования раскадровки?

    NSString drawInRect заданный контекст

    Ошибка API SDK для Facebook при публикации на стене пользователя

    Понимание профилей и сертификатов Provisioning в iOS

    UILocalNotification всегда появляется, как только я загружаю свое приложение, независимо от даты огня

    iOS: обнаружение, когда устройство Bluetooth отключается, когда приложение не работает

    Отладка SIGKILL на glDrawArrays (). iPhone iOS

    iAd Admob-посредничество с singleton

    Ошибка Xcode 0xC011 при загрузке контейнера

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.