Question La plume est chargée, mais la sortie 'vue' n'a pas été définie


J'ai ajouté un nouveau fichier nib à mon projet, et j'ai essayé de le charger.

Cependant, lorsque je clique sur l'icône de la barre d'outils censée m'amener à la vue que j'ai créée, je reçois un NSInternalInconsistencyException avec le message:

Application terminaison en raison d'une exception non interceptée   'NSInternalInconsistencyException', raison: '- [UIViewController   _loadViewFromNibNamed: bundle:] a chargé le "..." nib mais le point de vue n'a pas été défini. '

J'ai donc ouvert mon fichier nib, et je vois pour la vue qu'il n'y a pas de prises de référence définies. Cependant, j'essaie de cliquer et de faire glisser le cercle pour "nouveau site de référencement" vers le propriétaire du fichier, mais il ne me laisse pas ... que dois-je faire pour que mon affichage s'affiche?


638
2018-01-21 20:35


origine


Réponses:


Vous avez raison, mais comme je suis un nouveau venu, il m'a fallu un peu de temps pour comprendre toutes les étapes à suivre. Voici ce qui a fonctionné pour moi:

  • Ouvrez le fichier XIB causant des problèmes
  • Cliquez sur l'icône du propriétaire du fichier dans la barre de gauche (en haut, elle ressemble à une boîte jaune)
  • Si vous ne voyez pas la barre latérale droite, cliquez sur la troisième icône au-dessus de "vue" dans votre barre d'outils. Cela montrera la barre latérale de droite
  • Dans la barre latérale droite, cliquez sur le troisième onglet - celui qui ressemble un peu à un journal
  • Sous "Custom Class" en haut, assurez-vous que Class est le nom du ViewController qui doit correspondre à cette vue. Sinon, entrez-le

Custom class configuration

  • Dans la barre latérale de droite, cliquez sur le dernier onglet - celui qui ressemble à un cercle avec une flèche dedans
  • Vous devriez voir "points de vente" avec "vue" en dessous. Faites glisser le cercle à côté de l'icône "vue" sur la barre de gauche (en bas, ressemble à un carré blanc avec un contour gris épais

Custom class configuration

  • Sauvegardez le xib et relancez

1605
2018-06-18 11:43



C'est une proposition de Josh Justice, mais d'une manière graphique (les images sont à moi):

  1. Sélectionnez le propriétaire du fichier
  2. Sur le panneau de droite, sélectionnez la classe personnalisée.
  3. Entrez le nom de la classe personnalisée

enter image description here

  1. Sur le panneau de droite, sélectionnez oultets
  2. Faites glisser la vue de sortie pour afficher le composant

enter image description here

Enfin, le View Controller est instancié avec le code de rotation:

        PTFilterUserVC *aFilterUserVC = [[PTFilterUserVC alloc] initWithNibName:@"FilterVC" bundle:nil];

        //OPTIONAL.This is how 'I' am interested in present the view controller.
        [self.navigationController pushViewController:aFilterUserVC animated:YES];

119
2018-06-05 09:08



Je peux généralement le réparer en refaisant la connexion entre le propriétaire du fichier et la vue. Contrôle-faites glisser le propriétaire du fichier vers votre vue (dans IB) et sélectionnez l'affichage dans le menu contextuel.


65
2017-10-25 01:04



L'identité de vue - Identité de classe n'a pas été définie. Après l'avoir défini sur la classe appropriée, le problème a été résolu.


56
2018-01-25 21:03



Êtes-vous sûr d'avoir un UIView (ou une sous-classe) assigné à la propriété "view" de yourViewController?

Faites un clic droit sur "Propriétaire du fichier" dans le volet gauche du xib pour votre ViewController et vérifiez que la prise "vue" est réglée. Sinon, définissez-le sur une vue!

cela va définitivement résoudre le problème


25
2017-08-21 13:05



J'ai eu le même problème avec XCode 4.6.3. J'avais commencé avec quelques fichiers nommés MySettingsView.h et .m mais les a supprimés en faveur de MySettingsViewController.h, mais en dépit d'essayer la plupart des conseils mentionnés ici, il continuait toujours d'erreur avec,

2013-07-05 11: 48: 17.205 MyApp [39024: c07] *** Terminaison de l'application en raison d'une exception non interceptée 'NSInternalInconsistencyException', raison:   '- [UIViewController _loadViewFromNibNamed: bundle:] chargé le   "MySettingsView" plume mais la prise de vue n'a pas été définie. "

Il était évidemment encore "confus", essayant de charger MySettingsView.xib au lieu de MySettingsView Manette.xib. Peut-être que sa logique «fais ce que je veux dire» est trop sophistiquée.

J'ai donc travaillé sur le problème en codant en dur le nom NIB / XIB dans MySettingsViewController.m:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:@"MySettingsViewController" bundle:nibBundleOrNil];
}

14
2017-07-05 19:54



Pour moi toutes les choses énoncées ici https://stackoverflow.com/a/6395750/939501 étaient vrai, mais il était encore une erreur de lancer, raison pour laquelle j'ai créé une classe View avec le nom ABCView et ensuite supprimé plus tard, j'ai ajouté un contrôleur de vue comme ABCViewController donc en quelque sorte il faisait référence au vieux ABCView dans le nouveau contrôleur de vue et en ajouter un nouveau avec un nom différent qui a résolu mon problème.

Merci


13
2018-03-13 16:58



Mon problème avec ceci a été provoqué en ayant une plume en double dans le dossier de classe qui n'a pas eu la vue réglée. xcode a semblé choisir une plume pour une construction et l'autre la prochaine fois que j'ai construit le projet. Juste supprimé l'autre. Cela semble bon. Doh!


6
2017-08-30 20:07



Je viens de passer plus d'une heure à essayer de savoir pourquoi ma propriété vue n'est pas définie dans mon contrôleur de vue lors de son lancement depuis la plume. N'oubliez pas d'appeler "[super initWithNibName ...]" dans le champ initWithNibName de votre contrôleur de vue.


4
2017-07-28 13:57



Je viens de régler ça dans le mien. Grand projet, deux fichiers. L'un était "ReallyLargeNameView" et l'autre était "ReallyLargeNameViewController"

Basé sur la 2ème réponse choisie ci-dessus, j'ai décidé que je devrais nettoyer ma construction. Nada, mais j'étais encore suspect de XCode (comme j'ai deux classes identiques, je devrais les abstraire mais hein ...) Donc on travaille, on n'est pas. Les noms des propriétaires de fichiers sont aussi copiés et collés, les prises rebranchées, xCode redémarré, toujours rien.

Donc, je supprime la classe nommée similaire (qui est une vue). Bientôt, la nouvelle erreur "sortie à l'intérieur non accroché" était littéralement "webView pas la valeur clé" blah ... en gros dire "Visual Studio est mieux". En tout cas ... j'efface le petit fichier nommé, et bam, ça marche.

XCode est confondu par des fichiers similaires. Et le projet est assez grand pour avoir besoin de redémarrer un peu, ça peut en faire partie.

J'aimerais avoir une réponse plus technique que "XCode est confus", mais bon, xCode est très confus à ce stade. Unconfused de la même façon que j'aiderais un petit enfant. Cela fonctionne maintenant, :) Devrait profiter aux autres si ce qui précède ne corrige rien.

Rappelez-vous toujours de nettoyer vos builds (en supprimant le simulateur aussi)


4
2018-06-21 00:49