ストーリーボードのあるiOSプロジェクトがあります。最近Xcode 4.3.1にアップグレードしましたが、次の新しい警告が表示されます。
「エントリポイントがないためシーンに到達できず、-instantiateViewControllerWithIdentifier:によるランタイムアクセスの識別子がありません。」
問題は、ストーリーボードにナビゲーションコントローラーがいくつかあり、エントリーポイントがないことです。 Xcodeで設計時にナビゲーションバーを表示するために他のビューを埋め込むことができるようにするためです。これらのビューが実行時にプッシュされる実際のナビゲーションコントローラーは、ストーリーボードにはありません(ストーリーボードにまだ移植されていない古いコード)。
誰かがこれのための素晴らしい回避策を見つけましたか?警告なしにコードをクリーンに保ちたいです。
識別子を設定するだけです。右ペインのIDインスペクターのXcode> 5には、「ストーリーボードID」というフィールドがあります。そこに任意の文字列を入れれば、Xcodeは再び幸せになります。
必要に応じて、その識別子を介して到達できることを知りたいだけです。
Xcodeの新しいバージョン:属性インスペクターのTitle
にタイトルを設定し、コントローラーのIDインスペクターのStoryboard ID
に識別子を設定するだけです。
ビューコントローラーを実際のビューコントローラーの上に誤ってコピーして貼り付けた可能性があります。
問題のあるビューをドラッグして、下に何かあるかどうかを確認してください。
Xcode 6では、単独で立っている新しいView Controllerがある場合、このエラーが発生する可能性があります。作成した可能性があり、画面の接続にセグエを使用していません。
ナビゲーションコントローラーをクリックし、属性インスペクターで[初期ビューコントローラーです]ボタンをクリックすると、これも機能するはずです。
[Identity Inspector]ペインの[Storyboard ID]フィールドで、ViewController(ナビゲーションコントローラーを含む)ごとに識別子を設定する必要があります。
[属性インスペクター]ペインで[ビューコントローラー]セクションまでスクロールし、[初期ビューコントローラーである]がオフになっている場合は、これをオンにします。
アプリを実行します。
Title:設定「is Initial View Controller」(Xcode 6.1を使用)
Background:「エントリポイントがないためシーンに到達できず、-instantiateViewControllerWithIdentifier:を介したランタイムアクセスの識別子がないため、ビルドは失敗しました。」
Xcodeと初めてのユーザーをインストールしたばかりなので、適切な用語が説明に欠けている場合は、事前に謝罪してください。
Resolution:私の場合、「is Initial View Controller」チェックボックスはチェックされていませんでした
「初期ビューコントローラーです」プロパティは、デフォルトのXcodeウィンドウの右端のペインにあるか、または->ビュー->ユーティリティ->属性インスペクターの表示にあります。
「属性インスペクター」で設定されたプロパティが表示されない場合は、ストーリーボード領域で「ビューコントローラー」を選択します。中央に正方形がある小さな丸いボタン(または左側の最初のボタン)
「View Controller」を選択すると、「Attribute Inspector」ボックスにさまざまなプロパティ設定が入力されていることがわかります。
[属性インスペクター]ペインで[ビューコントローラー]セクションまでスクロールし、[初期ビューコントローラーである]がオフになっている場合は、これをオンにします。
プロジェクトを実行します。これが役に立ち、うまくいくことを願っています。