Chaque fois que je crée des connexions dans ma sous-classe de WKIInterfaceController
, l'erreur WatchKit error - unable to find interface controller class 'myClass' to instantiate
et un indicateur d'activité s'affichent dans le simulateur et l'affichage ne se charge pas. Déconnectez toutes les connexions et la vue s'affiche correctement mais obtenez toujours l'erreur
A tenté
Impossible de trouver la classe de contrôleur d'interface 'InterfaceController' pour instancier
WatchKit: impossible de trouver la classe du contrôleur d'interface
WatchKit reloadRootControllersWithNames provoquant une erreur, avec pageController ou après Push/pop
Deux liens suggèrent un bogue. S'il s'agit d'un bogue, il ne serait sûrement pas présent dans la version finale de XCode et tout le monde aurait le même comportement en rendant watcKit presque inutile.
Pour quiconque a cela. La classe doit être définie sur l'appartenance cible correcte, à savoir yourApp WatchKit Extension
plutôt que yourApp WatchKit App
lors de la création de votre classe. Il peut également être modifié dans l'appartenance à la cible dans le générateur d'interface.
J'ai résolu ce problème en:
1) supprimer le fichier InterfaceController qui pose des problèmes et le recréer dans le dossier de l'extension WatchKit du projet (pas seulement dans un groupe du navigateur de projet). Par défaut, xcode vous donne le dossier Watch App - vous devez le changer.
2) définition de la classe dans Interface Builder pour que module soit défini sur ProjectName_WatchKit_Extension
Si module n'est pas défini - xcode ne pourra pas trouver votre classe
J'avais les mêmes problèmes après la récente version 8.2. Je devais aller sur chacun de mes InterfaceControllers et ajuster son module de classe personnalisé à tout ce qui était présenté comme une option ou "aucun".
Dans mon cas, j'ai renommé Watch Kit Extension
en WatchKitExtension
. Le simulateur fonctionnait correctement, mais il n'a pas pu s'exécuter après le nettoyage complet du projet.
Merci à https://stackoverflow.com/a/29904047/104170 .
Pour que cela fonctionne, je devais simplement spécifier le bon module dans mon fichier .storyboard
.
Lorsque vous créez votre contrôleur d'interface Glance, veillez à l'ajouter à l'extension Watch App. C'était mon problème.
Vous devez vérifier que le contrôleur de vue se trouve dans votre source de compilation ici: Sélectionnez Projet> Sélectionnez la cible de l'extension Watchkit> Phases de construction> Sources de compilation.
Je l'ai résolu en mettant Module à Watch_Extension
Il suffit de regarder cible pour les deux classe et interface . Il devrait être réglé sur Extension c'est tout
Assurez-vous que vous créez le nouveau membre de classe des EXTENSIONS lors de la création de la classe.
Le problème ici est que nous avons configuré le module pour les contrôleurs d'interface de manière incorrecte. Puisque ces contrôleurs appartiennent à la cible Watch Extension, nous pouvons trouver le module de produit ci-dessous.
Image montrant comment trouver le nom du module du produit
Une fois que nous avons le nom du module, allez-y et configurez-le pour chaque contrôleur d'interface.
image pour montrer comment définir le nom du produit
Je l'ai corrigé en effaçant le nom du module dans le storyboard pour cette classe d'interface spécifique. (Qui est une classe objective-c).
Cliquez sur Mon scénario de la Watch> Scène du contrôleur d'interface> Inspecteur d'identité (l'icône du milieu, parmi les 5 icônes figurant dans le menu à droite de Xcode)> Définir le module sur "Extension de [NomProjet]] a fonctionné pour moi!