¿Cómo llenar un TableView con una matriz de objects?

Tengo un controller TableView que quiero completar con objects de una matriz. Estoy usando StoryBoard. Además, no estoy seguro si necesito colocar tags en el Prototipo de célula en el guión gráfico como un tipo de marcador de position.

Mi aList Mutable Array contiene objects de tipo Homework. En cada fila de la tabla, quiero mostrar (Estas son las variables ya establecidas en mi Modelo de tarea):

-Nombre de la class

-AssignmentTitle

-Fecha de vencimiento

Esto es lo que tengo actualmente

TableViewController.h

@interface AssignmentTableController : UITableViewController < AssignmentDelegate > @property(strong,nonatomic) Assignment *vc; @property (strong, nonatomic) NSMutableArray *alist;//array was filled with delegation @end 

TableViewController.m

 #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. return [self.alist count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; Homework *ai = [self.alist objectAtIndex:indexPath.row]; //*******I am not sure what to do from Here****** //*******I need to start displaying 1 object per row,displaying what was stated above*** // Configure the cell... return cell; } 

Tengo una implementación similar.

Implementación: creé los siguientes methods. (Los he editado para que se adapten a tu código).

 -(Homework*) homeworkAtIndex: (NSInteger) index { return [alist objectAtIndex:index] ; } -(NSInteger) numberOfObjectsInList { return [alist count]; } 

Y en el método delegado de UITableViewController:

 - (NSInteger) tableView: (UITableView*) tableView numberOfRowsInSection: (NSInteger) section 

Utilicé esta llamada de método

 return [self numberOfObjectsInList]; 

En el método delegado:

 - (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexPath: (NSIndexPath*) indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:SubtitleIdentifier] autorelease]; Homework *ai = [self homeworkAtIndex: indexPath.row]; /* your other cell configurations cell.textLabel.text = ai.className; // eg. display name of text cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ | %@",ai.assignmentTitle,ai.dueDate]; // will show the cell with a detail text of "assignment title | due date" eg. "Lab 1 | 23 Oct 2013" appearing under the className called "Physics" */ } 

Usando el método homeworkAtIndex le permitirá llenar los diferentes objects en la matriz en las diferentes celdas de la tabla.

De esta manera, tuve que tener que crear celdas personalizadas y formatear los tamaños de celdas para que se ajusten a la tabla. Tal vez esto funcione para usted si los datos que se van a mostrar no son tan largos y no tienen que usar las celdas personalizadas. (Al igual que el ejemplo que proporcioné)

Si se preguntaba cómo verificar las diferentes celdas seleccionadas (ya que puede desear empujarlas a un viewController diferente a partir de entonces), puede hacerlo en el método de delegado:

 - (void) tableView: (UITableView*) tableView didSelectRowAtIndexPath: (NSIndexPath*) indexPath { UIViewController* nextViewController = nil; NSString* cellDisplayName = [delegate homeworkAtIndex: indexPath.row].name; // can be the Homework object if you want if( [cellDisplayName isEqualToString:[self homeworkAtIndex:0].className] ) nextViewController = [[firstViewController alloc] init]; else if( [cellDisplayName isEqualToString:[self homeworkAtIndex:1].className] ) nextViewController = [[secondViewController alloc] init]; // goes on for the check depending on the number of items in the array } 

Estoy usando NSString aquí para verificar className ya que no estoy seguro de qué es el object Homework, pero definitivamente puedes cambiar la lógica para que se ajuste al object Homework, ya que supongo que puedes tener diferentes objects con la misma variable className.

¡Espero que esto ayude! 🙂

Hay un montón de tutoriales por ahí que llena las vistas de tabla usando matrices. Echa un vistazo a estos tutoriales.

http://www.appcoda.com/ios-programming-tutorial-create-a-simple-table-view-app/

http://www.raywenderlich.com/1797/ios-tutorial-how-to-create-a-simple-iphone-app-part-1

necesitará implementar una celda personalizada para acomodar 3 tags. Las celdas de tabla pnetworkingeterminadas generalmente tienen una vista de image y dos tags.

usar una celda personalizada

http://www.appcoda.com/customize-table-view-cells-for-uitableview/

usa la celda como una vista, solo coloca tus tags en la vista de contenido de la celda [1]. Ya ve que ya tienes el object con los datos que deseas mostrar, así que usa una celda con las cosas que quieres mostrar