9

我有一个 ios 应用程序,它使用带有一堆视图控制器的故事板。

添加新的 ViewController 后,并配置了标识(Storyboard 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"];

如果它有效,我认为 [self storyboard] 不会给你正确的对象;)。

于 2013-09-25T15:10:53.737 回答
2

设置Storyboard ID为在 Xcode 8.0 中使用并选中该Use Storyboard ID选项。还要检查 Class 字段是否设置Storyboard为 that ViewController

对话截图

于 2016-09-29T11:06:28.473 回答