Rellenar un campo de texto en un prototipo de celda de vista de tabla

Disculpas de antemano, como soy extremadamente nuevo en iOS y Objective-C y esta es probablemente una pregunta muy básica, pero me he topado con una pared, y después de días de búsqueda en la Web, todavía estoy perdido:

Estoy generando una tabla dinámica con varios tipos diferentes de celdas prototipo. Un tipo tiene solo un campo de texto en el que el usuario puede ingresar o editar una cadena arbitraria. Diseñé las celdas en el Storyboard Editor porque preferiría no perder el tiempo generando todo programáticamente si es posible.

Ya tengo una cadena en una variable que quiero usar para completar el campo de texto.

¿Cómo aborda y completa este campo? Supongo que la respuesta consiste en hacerlo en el momento en que se llama a la existencia de la celda con dequeueReusableCellWithIdentifier, pero esto es todo lo que he logrado... y necesito ayuda para conectar los puntos.

Ya he leído la "Guía de programación de vista de tabla para iOS" de Apple y no ha sido útil con este problema.

(si hubiera podido etiquetar esta pregunta como "novato"...)

preguntado el 04 de diciembre de 13 a las 23:12

Entonces, ¿ya tiene un prototipo de celda que contiene un campo de texto? -

Sería mejor leer la documentación de Apple ("Guía de programación de Table View para iOS") que "días de búsqueda en la web". -

1 Respuestas

Cree una nueva subclase de UITableViewCell y establezca la clase de su celda en esta clase. (seleccione la celda y luego haga clic en el inspector de identidad, el tercer ícono desde la izquierda. Ingrese el nombre de la clase allí donde dice: Clase) También deberá especificar un Identificador para la celda. Muchas veces pongo el mismo nombre que la clase, así que no los confunda en el código a continuación. Uno es el identificador, el otro es una clase.

En su cellForRowAtIndexPath, obtenga una instancia de su clase especial.

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellIdentifier = @"EventCell";

    EventCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    [cell populateTextField];

    return cell;
}

Cuando tenga el guión gráfico abierto, puede controlar y arrastrar desde el cuadro de texto a su nueva clase para crear una propiedad de salida. (Llamémoslo campo de texto)

Su propiedad se vería así después de presionar Ctrl y arrastrar y luego ingresar cuando se muestra el cuadro de diálogo:

@property (weak, nonatomic) IBOutlet UITextField *textField;

Luego, en su nueva clase, cree ese método populateTextField:

-(void)populateTextField {
    self.textField.text = @"My special string";
}

También tenga en cuenta que puede colocar texto de marcador de posición en un campo de texto, por lo que es posible que no necesite pasar por todo esto.

Respondido el 04 de diciembre de 13 a las 23:12

¿Tengo razón al suponer que el primer ejemplo de código va en la clase para el controlador de vista de tabla, con el segundo/tercer ejemplo de código para la clase de celda? - user3067970

Sí. Todo esto es material preliminar, por lo que el kilometraje puede variar. - Aaron Bratcher

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.