¿Cómo puedo usar un uitableview dentro de un uiviewcontroller? A continuación se muestra un ejemplo de lo que estoy tratando de hacer (excepto esto es sólo el UITableview
en mi guión gráfico):UITableView dentro de un UIViewController
He descubierto que tengo que añadir el delegado y la fuente de datos a mi cabecera:
//MyViewController.h
@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
En mi archivo de implementación, he añadido los métodos necesarios:
//MyViewController.m
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"cellForRowAtIndexPath");
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FileCell"];
NSLog(@"cellForRowAtIndexPath");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *fileListAct = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:nil];
cell.textLabel.text = [NSString stringWithFormat:@"%@",[fileListAct objectAtIndex:indexPath.row]];
return cell;
}
El delegate
, datasource
, y UITableView
están todos conectados de mi Storyboard:
no puedo conseguir el TableView para cargar el contenido que le digo que lo haga. Siempre sale en blanco. ¿Por qué el TableView no se llena con el contenido que le digo en el método cellForRowAtIndexPath? ¿Que me estoy perdiendo aqui?
ya no recibo errores de compilación, pero cuando intento de interactuar con la tabla de la aplicación se estrelló. ¿Y es el método cellForRowAtIndex el lugar correcto para poblar la vista de tabla? –
¿Cuál es el mensaje de error cuando se bloquea? Establezca un punto de interrupción en las excepciones de Objective-C para que pueda averiguar en qué línea se cuelga también. – jsd
Conecté la fuente de datos y delegué las tomas a mi ViewController (correctamente) y ya no recibo errores de compilación o bloqueos. Cuando establezco puntos de interrupción en cellForRowAtIndexPath y numberOfRowsInSection, se encuentran pero su contenido nunca se ejecuta. Además, nunca entra en cellForRowAtIndexPath, este método simplemente se ignora. ¿Por qué está pasando esto? –