STORYBOARD - ne contient pas de vue contrôleur avec un identifiant
Je reçois l'erreur suivante:
Storyboard (<UIStoryboard: 0x7ebdd20>) doesn't contain a view controller
with identifier 'drivingDetails'
C'est le code:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"drivingDetails"];
controller.title = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"name"];
[self.navigationController pushViewController:controller animated:YES];
}
J'ai déjà mis la identifier
sur le UIStoryboard
mais je vois encore cette erreur.
- On dirait que vous définissez l'identifiant d'un segue, pas une-vue-contrôleur. Qui-vue-contrôleur dans cette image, essayez-vous à présent? Et pourquoi n'utilisez vous pas un segue?
- Jusqu'à la Conduite de vue-contrôleur fonctionne bien.... que lorsque j'essaie de présenter des TableViewController je reçois le message d'erreur...... comment le feriez-vous?
- Aller au Storyboard, supprimez-le Storyboard ID, et ajouter à nouveau. Vous avez parfois besoin de nettoyer le dossier de création et de données provenant
Vous devez vous connecter pour publier un commentaire.
Juste pour référence future:
Je suis en développement sur iOS 6 à l'aide de story-boards.
J'ai eu le même problème, mais je ne pouvais pas trouver le champ "Identifiant" dans l'inspecteur.
Au lieu de cela, il suffit de régler le champ nommé "Storyboard ID" à ce que vous auriez le nom de l'Identificateur. Ce champ peut être trouvé sous "Afficher l'Identité de l'inspecteur" dans l'onglet de l'inspecteur.
[Note: les commentaires ci-dessous indiquent que certaines personnes ont trouvé que dont ils ont besoin pour (aussi?) définir le champ "Restauration ID" juste en dessous de la table de montage séquentiel ID dans l'inspecteur. En cliquant sur "Utiliser le Storyboard ID" ne semble pas être suffisant.]
Il y a une image ci-dessous pour référence: (dans ce cas, j'ai nommé mon identifiant est la même que ma classe)
Dans XCODE 7 | 8 | 9,
lorsque vous changez de storyboard id et vous obtenez des erreurs de ce type,
juste PROPRE votre projet (CMD+MAJ+K)
Fixe! Non seulement l'identifiant de la séquence doit être défini, dans mon cas DrivingDetails, mais aussi l'identifiant dans mon tableViewController doit être défini comme DrivingDetails...vérifier mon image:
J'ai également supprimé le mode de navigation controller alors maintenant, la 2 la vue de la table des contrôleurs sont connectés directement avec un "push" de l'animation.
*****EDIT pour XCODE 7.0*****
vous devez définir le storyboardId(dans ce cas, le viewController est incorporé dans un Navigation controller:
[storyboard instantiateViewControllerWithIdentifier]
n'est PAS l'instanciation de la vue à partir de l'Interface du Générateur à l'intérieur de la vue-contrôleur; mais dans iOS6, il n'Identité situé dans l'Identité de l'Inspecteur de l'onglet nommé Storyboard ID pour Xcode 6.3.2 et vérifié Utiliser Storyboard ID option.
Il y a parfois une confusion entre les termes.
Noter que
"StoryboardFileName"
est le nom de fichier de la table de montage séquentiel et non l'ID d'ici, où"StoryboardID"
est en fait l'ID que vous avez réglée manuellement à l'identité de l'inspecteur. Parfois, les gens sont confus au sujet de la différence entre les deux, où ils croient que le premier est en fait le StoryboardID et le second un ViewController nom de la classe.J'ai constaté une certaine confusion autour de ce que j'ai pensé à poster dans cette question, qui attire de nombreux nouveaux programmeurs Swift avec un problème similaire.
Juste eu ce problème après l'ajout d'un nouveau VC à la table de montage, mais uniquement sur l'appareil, pas sur le simulateur. Il s'avère que c'était en raison d'avoir plusieurs storyboard localisations - le VC n'a été ajouté à la principale. J'ai essayé de supprimer les autres localisations (dont l'un est celui mon iPhone utilise), mais encore l'erreur. À la fin, j'ai dû recréer les autres localisations avec la nouvelle CR dans chacun d'eux.
Je l'ai trouvé ...
cliquez sur la vue du contrôleur dans le storyboard,
cliquez sur la troisième icône à partir de la gauche sur la vc attributs inspecteurs - celui où vous définissez le nom d'appel
sur que scereen il dit "identité" - le mien était caché , j'ai eu à cliquer sur le mot identité
il montre ensuite storyboardID - ajouter l'identificateur du code, fait
La modification de "Storyboard" ID dans l'identité de l'inspecteur (le 3ème icône à gauche) devrait fonctionner.
Si pas et vous êtes sûr il n'y a pas de faute de frappe, essayez de nettoyer le projet (le"Produit"->"Propre", ou tout simplement de commande + maj + K).
Compilateur d'erreur suivant :
Ici, l'objet de la table de montage séquentiel créé n'est pas le principal storyboard, qui contient nos ViewControllers. Comme storyboard fichier sur lequel nous travaillons est nommé comme
Principal.storyboard. Nous avons donc besoin de référence de l'objet de la Principal.storyboard.
Utilisez le code suivant pour que :
Ici
storyboardWithName
est le nom de la table de montage séquentiel du fichier qui travaillent avec nous etbundle
spécifie le bundle dans lequel notre storyboard est (c'est à diremainBundle
).Pour ceux qui ont le même problème que @Ravi Bhanushali, voici une Swift 4 solution:
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
Un peu de mon point de vue, les contrôleurs ont disparu de la storyboardIdentifier attribut.
Avant:
Après:
Lors de la saisie de l'identifiant u n'avez pas sélectionné la bonne-vue-contrôleur, il suffit de cocher une fois si le fait de répéter la procédure une fois de plus.
J'ai eu la même erreur et j'ai pu résoudre ce problème en changeant la suite de changements dans mon projet. J'ai mentionné mon nom de classe de l'inspecteur du panneau alors que le problème est résolu.
Goto->panneau de droite, il y a Identité de l'Inspecteur
Dans la classe personnalisée section
classe:votre nom de classe(ViewController)
Dans la section Identité
storyboard ID:votre storyboard ID(viewController Nom)
Après cela, cliquez sur Utiliser le storyboard ID option là-bas.C'est ça le problème, c'est fini. J'espère que ça va vous aider....
L'aide de votre identifiant(@"drivingDetails") comme Storyboard ID.
il est très simple de sélectionner l'affichage de contrôleur dans l'histoire principale du conseil et de vérifier la storyboardID si son utilisation actuelle dans la identidier de donner un nom et l'utiliser.
ici mon firstone est le storyboardID
laissez-vc = auto.storyboard?.instantiateViewController(withIdentifier: "firstone") comme! tabBarViewController
J'ai essayé toutes les solutions ci-dessus et aucune n'a fonctionné.
Ce que j'ai fait:
Et puis il a travaillé. Ce qui est choquant, c'est que j'étais entré dans la Storyboar ID dans interface builder et il s'est retiré ou supprimé après l'ouverture de Xcode nouveau.
Espère que cela aide quelqu'un.
XCODE DRAG N DROP VOLET EST PARTI!!!
Nettoyage de toutes les choses et de fermeture Xcode n'a pas résolu le problème pour moi.
J'ai dû supprimer le viewController et en créer un nouveau avec un nouvel identifiant.