2017-03-27 1 views
0

J'aimerais disposer de deux fichiers de storyboard pour des raisons de caractéristiques. Un seul sera utilisé à la fois, mais je veux avoir deux fichiers pour passer d'une génération à l'autre. Cependant, je ne peux pas trouver où watchOS détermine le fichier de storyboard à charger.Comment watchOS trouve-t-il le fichier storyboard principal?

iOS possède une clé UIMainStoryboardFile dans Info.plist. Mais watchOS has no such key.

Quand je vérifie nos actuelles montre Extension et application Watch cibles tant dans le général et Infos sections, je ne vois aucune mention de fichiers story-board.

Notez que watchos ne ont WKExtensionDelegateClassName clé pour Info.plist, qui servira aussi ma fonction description du drapeau. Cependant, aucun code dans mon WKExtensionDelegate ne spécifie un storyboard particulier.

Dans Xcode, lorsque je regarde le fichier Storyboard Story actuel dans le volet droit File Inspector, je ne vois aucun indicateur spécial pour le storyboard initial. Juste au cas où il était listé ici. Le App Programming Guide for watchOS n'explique pas non plus comment la connexion est établie.

Des idées?

Répondre

1

Alors après beaucoup de l'expérimentation:

Conclusion:

  • Je ne peux pas avoir Storyboards mutuellement exclusifs watchos. Watch12 semble fusionner tous les storyboards en une seule chose.
  • Ainsi, lorsque vous référencez un WKInterface​Controller par son nom, watchOS sélectionne le storyboard approprié.
  • Pour mettre en scène des scènes de scénarimage, assurez-vous de ne pas charger la mauvaise.

preuve

bâtiment watchos extension application échoue avec des erreurs si plus d'un contrôleur d'interface est désignée « Est-contrôleur initial » sur plusieurs storyboards. L'erreur est: Multiple main entry points were specified. Please designate a single interface controller as the entry point of your watch application.

I a conçu le scénario suivant et cela a fonctionné:

  • Main.storyboard avec identifiant de contrôleur d'interface "Bobby".
  • Main2.storyboard avec identificateur de contrôleur d'interface "Sue".
  • Contrôleur d'interface Main2.storyboard Bobby "Is Initial Controller".
  • Bobby a bouton qui appelle WKInterfaceController.reloadRootControllers(withNames: ["Sue"], contexts: nil)
  • bouton fonctionne comme prévu et les charges Sue scène contrôleur d'interface de Bobby.