Simulateur noir

Bonjour,


 


J'ai voulu placer des objects (sans code) via le storyboard et là  c'est la drame... ::)  un bel écran noir.


et ce warning;  


 


"file:...../Main_iPhone.storyboard: warning: Unsupported Configuration: Scene is unreachable due to lack of entry points and does not have an identifier for runtime access via -instantiateViewControllerWithIdentifier:."


 


j'ai lu qu'il fallait ajouter au champ du storyboard Id du view controller ceci; MPDetailPageViewController


 


warning  réglé, mais kesakel ce MPDetail....  :o  ?


 

Reste cet écran du simulateur toujours noir. Et ce magnifique message dans la console;

 

2015-01-27 21:58:40.416 ok[2213:103036] Failed to instantiate the default view controller for UIMainStoryboardFile 'Main_iPhone' - perhaps the designated entry point is not set?

 

merci pour votre patience.

Réponses

  • Joanna CarterJoanna Carter Membre, Modérateur
    Tu as selectionné le view controller et le marqué comme "initial view controller" ?
  • AliGatorAliGator Membre, Modérateur
    janvier 2015 modifié #3
    Tu as choisi la mauvaise des deux options pour régler le warning ^^

    Dans un Storyboard tu mets des "Scènes" (en fait des ViewControllers, finalement). Ensuite pour les récupérer / instancier tu as deux choix :
    • soit tu veux accéder a une scène partiiculiere quelconque du Storyboard et dans ce cas tu utilises son sceneIdentifier pour dire qu'elle scene tu veux parmi toutes celles de ton Storyboard (avec la méthode "instantiateViewControllerWithIdentifier:")
    • soit tu définis une des scènes de ton Storyboard comme la scene "initiale" (le point de départ de ton parcours dans ton app en général) et tu demandes au Storyboard non pas d' instancier une scene avec un identifier particulier, mais la scene marquée comme initiale (avec la méthode "instantiateInitialViewController")
    Si une scene (un VC) n'est pas le VC marqué comme "initial" et qu'il n'a pas non plus d'identifier, aucune des deux façons possibles de le charger n'est possible, il n'y a aucun moyen d'y accéder pour demander de l'instancier, d'où le warning qui te dit "ce VC je pourrais jamais l'atteindre d'aucune façon". Il faut bien en choisir au moins une des deux, donc mettre un identifier à  ta scène ou la définir comme initiale.


    ---


    Maintenant que ceci est expliqué, il faut aussi comprendre qu'au lancement de ton application (quand "applicationDidFinishLaunchingWithOptions:" est appelé) il faut d'une manière ou d'une autre dire a ton application de charger une scene (tu peux avoir plusieurs Storyboard dans ton projet par exemple fait bien qu'il sache lequel utiliser). Là  encore tu as le choix :
    • Soit tout faire à  la main par code dans "applicationDidFinishLaunchingWithOptions" pour mettre du code qui va charger un ViewController (par exemple depuis un XIB, ou entièrement cree par code, ou via justement un Storyboard que ce soit via son initialViewController ou via un identifier pour charger un VC arbitraire dans le Storyboard) et affecter ce ViewController racine de ton application à  la propriété "rootViewController" de la UIWindow.
    • Soit t'as pas envie d'écrire du code rébarbatif et tu utilises comme la plupart des gens la clé du Info.plist (que tu peux aussi régler dans l'onglet "General" de ton xcodeproj) dédiée te permettant d'indiquer le nom du fichier ".storyboard" à  utiliser pour charger l'écran initial/racine de ton app, et tu laisses iOS faire le chargement du VC de ce Storyboard pour toi sans avoir à  ecrire de code pour ça.
    Si tu choisis la dernière option (ce que je te conseille ça fait moins de code au final et c'est plus simple), quand iOS charge le VC racine pour toi, il utilise le "initialViewController" du Storyboard que tu as indiqué dans tes réglages projet. Donc encore faut-il effectivement indiquer dans ton Storyboard quelle est la Scene / le VC que tu considères comme le VC "initial" justement !


    ---


    Tout ceci est normalement déjà  configuré pour toi quand tu crées un nouveau projet en utilisant un des templates de projet fournis par Apple. Mais si tu as supprimé le Storyboard et en a recréé un nouveau ou que tu es parti d'un template vide sans Storyboard du tout, alors évidemment il faut configurer cela (le "Main Storyboard" dans l'onglet General ou via le Info.plist + le initial ViewController dans le Storyboard) pour que ça fonctionne. Car sinon ton application ne chargera aucun VC racine au lancement donc ecran noir !!
  • lucluc Membre
    janvier 2015 modifié #4

    merci messieurs je regarde ça ce soir


  • lucluc Membre
    janvier 2015 modifié #5


    Tu as selectionné le view controller et le marqué comme "initial view controller" ?




    c'etait bien çà   ::)  merci.


     


    merci aussi a toi AliGator pour toutes ces explications


Connectez-vous ou Inscrivez-vous pour répondre.