WKIInterfaceController
のサブクラスで接続を行うたびに、エラーWatchKit error - unable to find interface controller class 'myClass' to instantiate
およびアクティビティインジケーターがシミュレーターに表示され、ビューが読み込まれません。すべての接続を切断すると、ビューは正しく表示されますが、エラーが発生します
試しました
インスタンス化するインターフェースコントローラクラス 'InterfaceController'が見つかりません
WatchKit:インターフェイスコントローラクラスが見つかりません
WatchKit reloadRootControllersWithNamesが原因でエラーが発生します。pageControllerを使用するか、Push/popを実行した後
2つのリンクがバグを示唆しています。それがバグの場合、これはXCodeのリリースバージョンには存在せず、誰もがwatcKitを役に立たないものとしてレンダリングする同じ動作を経験するでしょうか?
これを持っている他の人のために。クラスの作成時には、クラスを正しいターゲットメンバーシップ、つまりyourApp WatchKit Extension
ではなくyourApp WatchKit App
に設定する必要があります。インターフェイスビルダーのターゲットメンバーシップで編集することもできます。
私はこの問題を次の方法で解決しました:
1)問題のあるInterfaceControllerファイルを削除し、プロジェクトのWatchKit Extensionのフォルダーに再度作成します(プロジェクトナビゲーターのグループだけでなく)。デフォルトでは、xcodeはWatch Appフォルダーを提供します-変更する必要があります。
2)moduleがProjectName_WatchKit_Extensionに設定されるように、Interface Builderでクラスを設定する
moduleが設定されていない場合-xcodeはクラスを見つけることができません
最近の8.2リリース以降、同じ問題が発生していました。私は各InterfaceControllersに移動し、そのカスタムクラスモジュールを、オプションまたは「none」として表示されているものに調整する必要がありました。
私の場合、Watch Kit Extension
からWatchKitExtension
まで。シミュレータで正常に実行されていましたが、プロジェクトを完全にクリーンアップした後は実行できませんでした。
https://stackoverflow.com/a/29904047/10417 に感謝します。
機能させるために、正しいモジュールを.storyboard
ファイル
Glanceインターフェースコントローラーを作成するときは、必ずWatch App Extensionに追加してください。これが私の問題でした。
ここで、View Controllerがコンパイルソースにあることを確認する必要があります。[Project]を選択し、[Watchkit Extension Target]を選択し、[Build Phases]> [Compile Sources]を選択します。
ここでの問題は、インターフェイスコントローラのモジュールを誤って設定したことです。これらのコントローラーはWatch Extensionターゲットに属しているため、以下のように製品モジュールを見つけることができます
製品モジュール名の検索方法を示す画像
モジュール名を取得したら、先に進んで、各インターフェイスコントローラーに設定します。
製品名の設定方法を示す画像
ModuleをWatch_Extensionに設定して解決しました
ストーリーボードのモジュール名が、tagerts/XXX WatchKit App General Tab-> Frameworks、Libraries、and Embedded Contentの.appexファイルと同じであることを確認してください。
数時間、これに頭を悩ませました。ここのすべての提案に従いましたが、運はありません。
結局のところ、私が最初にやるべきことでした-ビルドフォルダーをクリーンアップしました。
Product> Clean Build Folder
classとinterfaceの両方についてtargetを参照してください。すべてがExtensionに設定されている必要があります
クラスを作成するときに、EXTENSIONSの新しいClassメンバーを必ず作成してください。
その特定のインターフェイスクラスのストーリーボードでモジュール名をクリアして修正しました。 (これは、objective-cクラスです)。
ウォッチストーリーボード>インターフェイスコントローラーシーン>アイデンティティインスペクター(Xcodeの右側のメニューに表示される5つのアイコンの真ん中のアイコン)> [[YourProjectName] Extension]にモジュールを設定すると、うまくいきました。