Je suis passé par ce tutoriel , "Option 2: Cellules prototypes" J'ai implémenté toutes les étapes, mais le code suivant me donne une erreur:
@interface MTViewController : UITableViewController
@end
le message d'erreur est:
contrôleur de vue instanciée avec l'identifiant "UIViewController-BYZ-38-t0r" du storyboard "Main", mais n'a pas obtenu de UITableView. '
Voici ce que j'ai essayé - j'ai changé UITableViewController
en UIViewController
et l'erreur est partie. Mais, la table reste vide. Pouvez-vous me dire pourquoi c'est?
Essayez de changer votre super classe en UIViewController ou de changer le contrôleur de votre storyboard en TableauView
@interface MTViewController : UIViewController, UITableViewDataSource, UITableViewDelegate
@end
Faites glisser une nouvelle instance du contrôleur de vue de table dans votre scénario, copiez les cellules que vous avez créées dans votre contrôleur précédent dans la nouvelle.
Cette erreur s'est probablement produite parce que vous avez utilisé le UIViewController par défaut créé par XCode qui n'est pas un UITableViewController.
J'ai rencontré exactement le même problème que vous… .. Vous utilisez probablement un UIViewController au lieu d'un UITableViewController dans le storyboard.
REMARQUE: Seule la sous-classe d'un UITableViewController personnalisé dans le storyboard ne suffit pas. Vous verrez la différence: différence entre UIViewController et UITableViewController
Vous devez donc faire glisser un UITableViewController de la bibliothèque, puis y déplacer toutes les cellules (cellules). N'oubliez pas de vérifier les liaisons et les mises en page automatiques si elles sont brisées.
Et bien sûr, vous ne pouvez pas déplacer la table à la racine de UIViewController, cela ne fonctionne tout simplement pas comme ça. =)
J'ai eu ce problème aussi. J'ai créé à l'origine tout à fait UIViewController
puis j'ai décidé d'utiliser plutôt UITableViewController
. Le problème est que j'ai oublié de définir l'ID de storyboard sur le nouveau contrôleur et de le remplacer par un autre élément de l'ancien contrôleur. Sinon, vous instancierez l'ancien contrôleur à partir du storyboard et le problème se produira.
En fait, vous utilisez UIViewController et non pas UITableViewController. Supprimez votre contrôleur de vue par défaut et faites glisser le nouveau TableViewController dans votre storyboard. Parce que votre ViewController n'a pas TableView, mais essaie de charger des cellules.
La solution simple consiste à: Supprimer ViewController et ajouter TableViewController
Ensuite, vous devez changer le nom de sa classe en MTViewController ou Votre nom de classe
assurez-vous que la source de données est définie sur self.