2017-03-27 5 views
0

私は機能フラグの理由で2つのストーリーボードファイルを持っています。一度に1つだけ使用されますが、私はビルドの間で前後に切り替えるための2つのファイルが必要です。しかし、どのストーリーボードファイルを読み込むべきかをwatchOSが特定する場所を見つけることはできません。watchOSはメインのストーリーボードファイルをどのように見つけますか?

iOSにはInfo.plistのキーUIMainStoryboardFileがあります。しかし、watchOS has no such key

私は両方一般情報セクションで私たちの現在のウォッチ拡張とウォッチアプリの目標を確認したとき、私はストーリーボードファイルについての言及は見られません。

watchOS にはWKExtensionDelegateClassNameというInfo.plistのキーがありますが、それは私の機能フラグの目的にも役立ちます。しかし、私のWKExtensionDelegateのコードは特定のストーリーボードを指定していません。

Xcodeでは、ファイルインスペクタの右ペインで現在のウォッチストーリーボードファイルを見ると、最初のストーリーボードには特別なインジケータマーキングが表示されません。ちょうどそれがそこにリストされた場合に備えて。

App Programming Guide for watchOSには、どのように接続するかについては説明されていません。

アイデア?だから、後に多くの実験を

答えて

1

結論:

  • 私はwatchOSで相互に排他的なストーリーボードを持つことはできません。
  • watchOSはすべてのストーリーボードを1つのものにマージするようです。
  • WKInterface​Controllerを名前で参照する場合、watchOSは正しいストーリーボードを選択するだけです。
  • ストーリーボードの旗の特徴を表示するには、間違ったものをロードしないようにしてください。

証拠

ビルwatchOSアプリの拡張機能は、複数のインタフェースコントローラが指定されている場合は、複数のストーリーボード全体で「初期コントローラである」というエラーで失敗します。エラーは、次のとおりMultiple main entry points were specified. Please designate a single interface controller as the entry point of your watch application.

私は次のシナリオを考案し、それが働いた:

  • Main.storyboardをインタフェースコントローラ識別子「ボビー」と。
  • Main2.インターフェイスコントローラ識別子が「Sue」のストーリーボード。
  • Main2.storyboardインターフェイスコントローラBobby "初期コントローラです"。
  • ボビーはWKInterfaceController.reloadRootControllers(withNames: ["Sue"], contexts: nil)
  • ボタンの期待どおりに動作し、ボビーから負荷スーインタフェースコントローラシーンを呼び出すボタンがあります。
関連する問題