plume, mais n'a pas obtenu une UITableView
Mon application fonctionne pour iOS 5.1, mais pour iOS 6 simulateur j'obtiens l'erreur suivante.
Résiliation d'application en raison de uncaught exception
'NSInternalInconsistencyException', la raison: '-[UITableViewController
loadView] chargé de la "MainListViewController" plume mais n'a pas obtenu un
UITableView.'
Je suis sous-classement UITableViewController
et je ne veux pas le changer.
La tableview créé par programmation, il est un mannequin MainListViewController.xib
à la charge de Mainwindow.xib
Tab Bar Controller.
J'ai aussi essayé de supprimer MainListViewController.xib
, le retirer de la MainWindow.xib
Tab Bar Controller, créé le MainListViewController
dans AppDelegate et de l'ajouter à la Barre d'Onglet Contrôleur UITabBarItem
de se débarrasser de cette plume problème, mais j'obtiens toujours la même erreur.
- Où est votre table en cours de chargement? Et est-il mis à la vue de la prise/de la propriété
- Il est chargé dans le viewDidLoad, dans la deuxième version(qui ajoute un UITabBarItem par programmation) elle n'est pas définie à une prise de courant/de la propriété.
Vous devez vous connecter pour publier un commentaire.
Si vous avez une PLUME pour la
UITableViewController
sous-classe puis sonview
prise doit être raccordé à uneUITableView
.Vous êtes en droit de supprimer
MainListViewController.xib
et de faire tout cela dans le code, mais la raison pour laquelle il n'a pas de travail pour vous, c'est parce que l'ancien XIB ne seront pas supprimées lorsque vous build & run. Donc, supprimer l'application dans le simulateur et essayez de nouveau. Il devrait fonctionner ensuite.UITableViewController
. Si la vôtre a été quelque chose de différent, alors ce n'est pas cette question que vous devriez être à la recherche à.J'ai eu un problème similaire en utilisant des story-boards. Je vais poster ma solution pour le bénéfice des autres. L'essentiel est que si vous avez correctement installé le propriétaire du fichier à la sous-classe de la UITableView vous avez toujours assurez-vous que le point de vue de la propriété est définie à la Vue de la Table. J'utilise les storyboards, mais le même genre de chose devrait s'appliquer à plumes ainsi. Développez le document "plan" de sorte que vous pouvez voir la hiérarchie de votre storyboard. J'ai inclus quelques captures d'écran ci-dessous. Le moyen rapide de résoudre ce problème est que vous voulez regarder votre vue dans la structure du document. Supprimer tout tableview vous avez un enfant de lui. Faites glisser l'autre tableview sur le haut de la vue de la propriété. Fait. Je vais vous montrer dans les captures d'écran.
Avis les deux tables. Vous souhaitez supprimer table1 et de ses cellules.
Bon. Maintenant, faites glisser table2 à la vue et vous avez terminé. Devrait maintenant fonctionner. En gros si vous avez une sous-classe de UITableViewController alors il doit avoir la Vue de la Table à la place de la vue ou il va se planter.
Table View
doit être un enfant de laActivitiesTVC - Activities
nœud et non PAS un enfant de laView
La raison pourrait être :
.h fichier de vérifier qu'elle est une sous-classe de UIViewController. il permettra de résoudre le problème.
Si vous utilisez UITableView que votre Vue de Dessus.
Comme ceci :
Vous avez besoin d'utiliser UITableViewController dans votre Contrôleur
Si vous utilisez UITableView sous un point de Vue dans votre Storyboatd.
Comme ceci :
Vous avez besoin d'utiliser UITableViewDelegate et UITableViewDataSource avec UIViewController
En bref, vous êtes réglage personnalisé UITableViewController sous-classe à un UIViewController !!
Vous ne pouvez pas faire cela. Vous devriez donner à l'UIViewController une sous-classe UIViewController.
J'ai trouver la solution lors de l'utilisation de story-boards et 1 table.
La clé, c'est quand vous créez une classe personnalisée (newViewController) il suffit de vérifier que est une sous-classe de UITableViewController. Une fois créé, Aller à la table view controller (de notre tableau) et à l'Identité de l'Inspecteur, sélectionnez la classe personnalisée, que vient d'être créée avant (newViewController).
Qui fonctionne pour moi. J'espère que mon commentaire à aider quelqu'un.
S'il vous plaît connecter votre vue de la table que d'une Vue prise de courant.prise doit être branchée à un UITableView.
Il y a plusieurs raisons pourquoi cela pourrait se produire.
Vous avez pas ont ajouté UITableViewDelegate & UITableViewDataSource pour votre .h
@interface TableController : UIViewController {
Vous avez pas connecté votre déclarée points de vente pour les composants dans la table de montage séquentiel/Plume
Vous peut-être appeler un UIViewController au lieu d'un UITableView ou vide verser dans votre .h
@interface TableController : UIViewController
ou
J'ai eu ce problème et de le résoudre, c'était juste une chose simple.
Garder la plume si vous avez déjà créé ...
Aller à (fichier XIB) et ajouter un tableView composant à partir d'une bibliothèque d'objets à la XIB du fichier de l'écran de l'iPhone, et cela devrait fonctionner 🙂
Cela a fonctionné pour moi. Espérons qu'il vous aide.
Dans AppDelegate-->
Assurez-vous dans votre storyboard-vue-contrôleur les points de cette classe:
J'ai aussi rencontré ce problème, mais j'ai utilisé du storyboard dans xcode 6.2. J'ai supprimé la vue correspondante du storyboard et re-traîné le table view controller à partir de la bibliothèque d'objets de storyboard, puis il travaille.
@smileBot réponse m'a aidé réalisé la solution est très facile et l'erreur déclenchée par iOS sens
Leur revient à dire que la plume de-vue-contrôleur n'est pas le retour d'un UITableView car il n'est pas, pour la plupart - votre plume est de retour une Vue - qui est créé pour vous par défaut lorsque vous créez un nouveau ViewController dans Xcode IDE.
La solution est aussi simple que la suppression de ce Vue - qui pourrait se sentir à l'encontre de la norme, mais aller de l'avant et de le sélectionner et d'arrière - puis faites glisser et déposez un UITableView à l'intérieur de votre ViewController et ce UITableView va maintenant agir comme votre vue de la racine à l'intérieur de votre TableViewController.
Garder à l'esprit ceci n'est nécessaire que pour les classes directement sous-classement UITableViewController.
Bonne chance.
J'ai le même problème et après des déchets 3 heures, je la trouve..."c'est une erreur" - je utiliser tableviewcontroller de classe et de donner uiviewcontroller de référence de cette classe, au lieu de-vue-contrôleur de classe i prendre tableviewcontroller classe que je prends uiviewcontroller dans le storyboard. afin de supprimer tableviewcontroller classe et coller votre code de tableviewcontroller classe à vue-contrôleur de classe, de"ne pas coller tout le code coller uniquement la logique" après cela, dans la table de montage séquentiel dans l'identité de l'inspecteur de donner à la classe de référence de la vue actuelle de la classe contrôleur.