2011-04-24 9 views
8

Tengo un UITableViewController personalizado ("ChatView") que tiene un resultado para un tableView. En el constructor de interfaz, conecté el tableView en el plumín a la salida. Cuando la vista se carga, obtengo el error anterior. La vista se carga a través de un tabcontroller.cargó la plumilla "ChatView" pero no obtuvo una UITableView. '

He hecho algunas investigaciones sobre el error y parece que no puedo rastrear el problema. Agradecería que alguien me ayudara a resolverlo.

@interface ChatViewController : UITableViewController 
<UITableViewDelegate, UITableViewDataSource> { 

    NSMutableArray *chatMessages; 
    IBOutlet UITableView *chatTable; 
    IBOutlet UITextField *chatText; 


} 

@property(nonatomic, retain) IBOutlet UITextField *chatText; 
@property (nonatomic, retain) IBOutlet UITableView *chatTable; 
@property (nonatomic, retain) NSMutableArray *chatMessages; 


-(IBAction)sendPressed; 


@end 

Gracias

Respuesta

0

bien - de hecho, una UITableViewController hay UITableView. Por lo tanto, el mensaje de error es correcto ... No conozco su código, pero ¿no debería ChatViewCotroller ser un ChatView y estar basado en un UITableView?

+0

El controlador para esta vista es una subclase de UITableViewController. Al crear una nueva clase UIViewController en xcode, hay una opción para la subclase UITableviewController. Como mi vista contiene una UITableView, asumí que esto era lo correcto. La plantilla generó los métodos para implementar la fuente de datos y delegar protocolos. – Nick

0

En MainView.xib configuré el controlador de vista para que sea un "Controlador de vista de tabla" en las propiedades de Atributos del controlador de tabulación. Esto solucionó el problema.

0

En mi caso, mi controlador de vista realmente no era un UITableViewController. PENSÉ que era porque lo había hecho parecer uno en mi guión gráfico. De hecho, era un controlador de navegación y le había dejado una UITableView.

La forma en que pude descubrir que de hecho no era un UITableViewController fue mirando el archivo .storyboard en un editor de texto. Es XML que es bastante fácil de leer. Para resolver el problema, dejé caer un UITableViewController en mi guión gráfico, copié y pegué todo desde el controlador de navegación que había estado usando, y luego borré el controlador de navegación.

11

Tuve un problema similar. El vertedero de tiempo de ejecución estaba diciendo:

semilla cargada, pero no consiguió un UITableView

me había enganchado todo está bien en el guión gráfico. Tenía viewController como clase principal y tenía un objeto UITableView con una celda personalizada dentro.

Sin embargo, el problema era que mi clase personalizada había 'alguna manera' terminó siendo una UITableView en lugar de esto:

@interface iPadDetailViewController : UIViewController <UITableViewDelegate> { 
    IBOutlet UITableView *tableBox; 
} 

Una vez que logré hacer coincidir el tipo de guión gráfico con el tipo de clase personalizada que era todo multa.

La moraleja de la historia, xCode y el compilador suele ser correcta. Verifica que tus clases coincidan.

6

Si su clase es UITableViewController, la toma view debe estar conectada a la vista de tabla. Si desea una vista que contenga un UITableView, simplemente configure el controlador como UIViewController que cumpla con los protocolos UITableViewDelegate y UITableViewDataSource y esto desaparecerá.

+0

¿Cómo puedo agregar 'self.refreshControl' sin' UITableViewController' –

1

ChatViewController es una subclase de UITableViewController, por eso, el compilador supone que su propiedad de vista es UITableView, sin embargo, no fue así, es por eso que se produjo ese bloqueo.Un objeto UITableView debe estar vinculado a su File's Owner:

enter image description here

0

también me encontré con el "cargado el _ __ _ _ semilla, pero no tuve la UITableView '." Pongo No sé qué lo causó, pero se resolvió por mí cuando simplemente me mudé (como mover unos pocos píxeles a la derecha y luego volver a la posición original) la escena ofensiva en mi guión gráfico, guardé el archivo, lo limpié y volví a compilar.

0

Recibí este mensaje de error también. Lo que me sucedió es que hice clic con el botón de control arrastró un objeto Ver controlador en mi guión gráfico, pero la clase personalizada era en realidad una subclase UITableViewController en lugar de una subclase UIViewController.

En tiempo de ejecución, cuando mi subclase UITableViewController personalizada cargó su vista, esperaba una UITableView pero obtuvo una UIView de Interface Builder. La solución consistía en eliminar el objeto controlador de vista anterior del guión gráfico y, a continuación, presionar la tecla control y arrastrar un objeto controlador de vista de tabla.

Cuestiones relacionadas