tab icon bar iphone uitableview uitabbarcontroller datasource delegates

iphone - tab bar icons



Iphone: TabView+TableView (4)

Yo tuve el mismo problema. 1. Asegúrese de que su Vista implemente los métodos del origen de datos 2. En IB, establezca la identidad de clase para su vista en la clase que implementa los métodos del origen de datos. 3. Haga clic con el botón derecho en la vista en IB y verifique que el origen de datos esté conectado al propietario de archivos , no a la vista.

Creo que me falta algo simple, pero no puedo entender exactamente qué es.

Estoy tratando de configurar una aplicación con un UITabViewController , y una de las pestañas tendrá una UITableView y UISearchBar (pero no un controlador de navegación). Configuré el UITabViewController con todas las pestañas en el constructor de interfaz, y las vistas están en sus propios archivos xib. El archivo xib para la pestaña con UITableView se configura y conecta de la siguiente manera.

Cosas en el navegador: vista del propietario del archivo (Clase es mi clase personalizada que es un elemento secundario de UITableViewController) -> Ver

View (class UIView, reference view -> File''s owner) contains: UITableView (if i try and set references to the data source / delegate, the app breaks) UISearchBar (unconfigured at the moment)

Esta configuración muestra todos los elementos y no se bloquea, pero no puedo asignar un DataSource sin que se bloquee cuando intento cargar la pestaña con UITableView. ¿Qué debo hacer para obtener datos en esta tabla, ya sea en IB o en código? Mis ideas son las siguientes:

  1. Implemente la clase UITableView personalizada, conéctese a la vista de tabla en IB o al TableViewcontroller personalizado en Xcode.
  2. Golpee la cabeza o la computadora portátil contra la pared hasta que funcione.

Actualización: Este es el error que el simulador presiona a la consola cuando conecto la fuente de datos de Tableview y delegado al propietario del archivo (cuya clase es mi TableViewcontroller personalizado).

14/02/09 6:59:12 PM TabBarWillbeRight [33172] * Aplicación de finalización debido a la excepción no detectada ''NSInvalidArgumentException'', razón: ''* - [UIViewController tableView: numberOfRowsInSection:]: selector no reconocido enviado a la instancia 0x523760


¿Estás seguro de que tu clase implementa las clases UITableViewDelegate y UITableViewDataSource? También verifique la declaración de su viewcontroller. Su archivo .h debería ser algo como esto

@interface MyClass:UIViewController <UITableViewDelegate,UITableViewDataSource>

Todo lo demás parece estar en su lugar. Si la declaración de clase no especifica que implementa UITableViewDelegate y DataSource, obtendrá la excepción tan pronto como configure el origen de datos.


Si no puede asignar el DataSource sin que se cuelgue, eso sugiere que algunos de los métodos delegados de DataSource no se han implementado.

En particular, la clase que está asignando como fuente de datos debe implementar UITableViewDataSource


Tuve un problema similar con el mismo mensaje de error. La solución simple fue hacer clic en la Vista en el TabBarController (El rectángulo gris que dice "vista cargada desde ...") en IB y cambiar la clase del elemento por el nombre de clase de mi TableViewController.