Saltar al contenido

¿Cómo hacer UITableview con Textfield en Swift?

Olivia, parte de nuestro staff, nos hizo el favor de redactar esta crónica porque conoce muy bien este tema.

Solución:

En su controlador de vista, conviértase en UITextFieldDelegate

Ver controlador


class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate 

    var allCellsText = [String]()

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomTableViewCell

        cell.theField.delegate = self // theField is your IBOutlet UITextfield in your custom cell

        cell.theField.text = "Test"

        return cell
    

    func textFieldDidEndEditing(textField: UITextField) 
        allCellsText.append(textField.text!)
        println(allCellsText)
    


Esto siempre agregará los datos de textField a allCellsText array.

crear una variable

var arrayTextField = [UITextField]()

después de esto en tu func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
agregar

self.arrayTextField.append(textfield)

antes de devolver la celda, después de esto para mostrar los valores usando

for textvalue in arrayTextField
        println(textvalue.text)
    

este método es iniciar la celda, no tienes un modelo para guardar estos datos, así que

text = cell.textfield.text

¡no es nada! puedes iniciar var textString en viewcontroller, un UITextFieldDelegate heredado

optional func textFieldDidEndEditing(_ textField: UITextField)

     textString = _textField.text

optional func textFieldShouldReturn(_ textField: UITextField) -> Bool
    return true

y cell.textField.text = textString

Sección de Reseñas y Valoraciones

Nos encantaría que puedieras comunicar esta crónica si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *