semilla, pero no obtuvo una UITableView

Mi aplicación funciona para iOS 5.1 pero para el simulador iOS 6 me sale el siguiente error.

La finalización de la aplicación debido a la excepción no detectada ‘NSInternalInconsistencyException’, razón: ‘- [UITableViewController loadView] cargó la semilla “MainListViewController” pero no obtuvo una UITableView.’

Estoy UITableViewController y no quiero cambiarlo.

La vista de tabla se crea mediante progtwigción, hay un MainListViewController.xib ficticio para cargar desde Mainwindow.xib Tab Bar Controller.

También traté de eliminar MainListViewController.xib , eliminarlo del MainWindow.xib Tab Bar Controller, crear MainListViewController en AppDelegate y agregarlo a Tab Bar Controller como UITabBarItem para deshacerme de este problema de punta, pero sigo teniendo el mismo error.

Si tiene un NIB para la subclase UITableViewController , su salida de view debe estar conectada a una UITableView .

Tiene razón al eliminar MainListViewController.xib y hacerlo todo en código, pero la razón por la que no funcionó para usted es porque el antiguo XIB no se eliminará cuando compile y ejecute. Por lo tanto, elimine la aplicación del simulador y vuelva a intentarlo. Debería funcionar entonces.

Tuve un problema similar al usar storyboards. Publicaré mi solución para el beneficio de otros. La clave es que si ha configurado correctamente el propietario del archivo en la subclase de UITableView, debe asegurarse de que la propiedad de vista esté configurada en la Vista de tabla. Estoy usando guiones gráficos, pero el mismo tipo de cosas debería aplicarse también a las puntas. Expanda el “esquema del documento” para que pueda ver la jerarquía de su guión gráfico. Voy a incluir algunas capturas de pantalla a continuación. La forma más rápida de resolver esto es que desea ver su vista en el bosquejo del documento. Elimine cualquier vista de tabla que tenga como hijo de ella. Arrastre la otra vista de tabla en la parte superior de la propiedad de vista. Hecho. Te mostraré en capturas de pantalla.

enter image description here

Fíjate en las dos tablas. Desea eliminar table1 y su celda.

enter image description here

Bueno. Ahora arrastre table2 a la vista y listo. Debería funcionar ahora Básicamente, si tiene una subclase de UITableViewController, debe tener Table View en lugar de view o se bloqueará.

enter image description here

La razón podría ser:

.h archivo compruebe que es una subclase de UIViewController. resolverá el problema

En resumen, ¡está configurando una subclase UITableViewController personalizada para un UIViewController! No puedes hacer esto. Debería darle al UIViewController una subclase UIViewController.

Si usa UITableView como su vista superior.

Me gusta esto :

enter image description here

Necesitas usar UITableViewController en tu Controlador

 class ItemsViewController: UITableViewController 

Si usa UITableView bajo una Vista en su Storyboatd.

Me gusta esto :

enter image description here

Necesita usar UITableViewDelegate y UITableViewDataSource con UIViewController

 class ItemsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

Encuentro la solución cuando uso Storyboards y 1 vista de tabla.

La clave es cuando creas una clase personalizada (newViewController) simplemente marca que es una subclase de UITableViewController. Una vez creado Vaya al controlador de vista de tabla (de nuestra tabla) y en el Inspector de identidad seleccione la clase personalizada que acaba de crear (newViewController).

Funciona para mi. Espero que mi comentario ayude a alguien.

Por favor, conecte su vista de tabla como una Salida de vista. La salida debe estar conectada a una UITableView.

Hay varias razones por las cuales esto puede ocurrir.

  1. Puede que no haya agregado UITableViewDelegate & UITableViewDataSource a su .h

    @interface TableController: UIViewController {

  2. Es posible que no haya conectado sus salidas declaradas a los componentes en Storyboard / Nib

  3. Usted puede llamar a un UIViewController en lugar de un UITableView o vice verser en su .h

@interface TableController : UIViewController

o

  @interface TableController : UITableViewController 

Tuve este problema y resolverlo fue solo una cosa simple.

Mantenga la punta si ya creó …

Vaya a (archivo XIB) y agregue un componente tableView de la biblioteca de objetos a la pantalla del iPhone del archivo XIB, y debería funcionar 🙂

Esto funcionó para mí. Espero que te ayude

En AppDelegate ->

 #import "TableViewController.h" // name of your TableViewController class - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //PUT TableViewController *controller = [[TableViewController alloc] initWithStyle:UITableViewStylePlain]; self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = controller; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; // Override point for customization after application launch. return YES; } 

Asegúrate de que en el guión gráfico tu controlador de vista apunte a esta clase:

Story Board

También encontré este problema, pero utilicé el guión gráfico en xcode 6.2. Eliminé la vista correspondiente del guión gráfico y volví a arrastrar el controlador de vista de tabla de la biblioteca de objetos al guión gráfico, luego funciona.

La respuesta de @smileBot me ayudó a darme cuenta de que la solución es muy fácil y el error planteado por iOS tiene sentido

La finalización de la aplicación debido a la excepción no detectada ‘NSInternalInconsistencyException’, razón: ‘- [UITableViewController loadView] cargó la semilla “MainListViewController” pero no obtuvo una UITableView.’

Básicamente, dicen que el controlador de vista de plumilla no está devolviendo una UITableView porque, para la mayoría, su plumilla no devuelve una Vista , que se crea automáticamente para usted cuando crea un nuevo ViewController en el IDE de Xcode.

La solución es tan simple como eliminar esa vista , lo que puede parecer contrario a la norma, pero adelante, seleccionarla y retroceder, luego arrastrar y soltar una UITableView dentro de su ViewController y esta UITableView ahora actuará como su vista raíz dentro de su TableViewController.

Tenga en cuenta que esto solo es necesario para las clases que subclasifican directamente UITableViewController.

Buena suerte.

Tengo el mismo problema y después de perder 3 horas lo descubro … “esto es un error” uso la clase tableviewcontroller y le doy la clase de controlador de visualización a esta clase, en lugar de ver la clase de controlador tomo tableviewcontroller class mientras tomo uiviewcontroller en el guión gráfico. así que elimine la clase tableviewcontroller y pegue el código de la clase tableviewcontroller para ver la clase del controlador, “no pegar todo el código solo pegue la lógica” después de esto en el storyboard en el inspector de identidad proporcione la referencia de clase de la clase del controlador de vista actual.