9

一連のビュー コントローラーを備えたストーリーボードを使用する iOS アプリケーションがあります。

新しいViewControllerを追加した後、ID(ストーリーボードID)を設定しました ここに画像の説明を入力

次のコードを使用して、新しい ViewController をインスタンス化しようとしています。

SurveyNewViewController *newSurvey = [[self storyboard] instantiateViewControllerWithIdentifier:@"newSurveyView"];
[self presentViewController:newSurvey animated:YES completion:nil];

すべてが正しいように見えますが、シミュレーターでアプリケーションを実行するとクラッシュします。

** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:   
'Storyboard (<UIStoryboard: 0xa340fa0>) doesn't contain a view controller 
with identifier 'newSurveyView''

これについて可能な説明はありますか?システムのさまざまな場所でこの同じアプローチを使用しましたが、うまく機能します。

4

3 に答える 3

38

プロジェクトを実行した後、iPhone シミュレーターからアプリを削除し、プロジェクトをクリーンアップしてビルドしてみてください。

于 2013-09-25T17:05:52.433 に答える
4

それを試してください:

[[UIStoryboard storyboardWithName:@"StoryboardNameOfnewSurveyView" bundle:nil] instantiateViewControllerWithIdentifier:@"newSurveyView"];

それが機能する場合、[セルフ ストーリーボード] は適切なオブジェクトを提供しないと思います ;)。

于 2013-09-25T15:10:53.737 に答える
2

Storyboard IDこれは Xcode 8.0 で使用されるため、設定し、Use Storyboard IDオプションを確認します。また、 Class フィールドがそれに設定されていることを確認StoryboardViewControllerます。

ダイアログのスクリーンショット

于 2016-09-29T11:06:28.473 に答える