2015-09-30 9 views
10

Ho passato questo tutorial, "Opzione 2: Prototype Cells" Ho implorato tutti i passaggi, ma, il seguente codice mi dà un errore:Storyboard "Principale", ma non ha ottenuto UITableView quando si utilizza UITableViewController

@interface MTViewController : UITableViewController 

@end 

il messaggio di errore è:

instantiated view controller with identifier "UIViewController-BYZ-38-t0r" from storyboard "Main", but didn't get a UITableView.'

Ecco quello che ho provato - ho cambiato UITableViewController-UIViewController e l'errore è andato via. Ma la tabella rimane vuota. Puoi dirmi perché è questo?

+0

Cosa intendi in bianco? Quando aggiungi un controller di visualizzazione allo storyboard è vaniglia. Devi aggiungere gli elementi ad esso. – Bob

risposta

14

provare a cambiare la classe super per UIViewController o modificare il controller nel vostro storyboard per TableView controller

@interface MTViewController : UIViewController, UITableViewDataSource, UITableViewDelegate 

@end 
3

Trascinare una nuova istanza di Table View Controller nel vostro storyboard, copiare le celle si è creato nel controller precedente in quello nuovo.

Questo errore si è verificato probabilmente perché hai utilizzato l'UIViewController predefinito creato da XCode che non è un UITableViewController.

+0

problema molto sottile e soluzione ovvia (supponendo che apprezziate il problema). ora, perché le mie proprietà cellulari ritornano in NIL? – mobibob

+0

questo è strano ma è vero. Ho avuto lo stesso problema, risolto come hai descritto – pulp

27

Nello storyboard, è necessario creare la vista radice del UITableViewController a UITableView.

Interface Builder Table View Controller

Interface Builder Custom Class

0

che si deve creare una sottoclasse UIViewController invece di UITableViewController

// Questo è come si dovrebbe andare a questo proposito

@interface MTViewController : UIViewController 


@end 
2

ho avuto questo prob anche io. Ho creato originariamente semplice UIViewController quindi ho deciso di usare piuttosto UITableViewController. Il problema è che mi sono dimenticato di impostare l'ID dello storyboard sul nuovo controller e di cambiarlo in qualcos'altro sul vecchio controller, altrimenti si istanzia il vecchio controller dallo storyboard e questo problema si verificherà.