从故事板中无法显式加载视图控制器

7
我正在从story board显式地加载一个视图控制器,代码如下:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
UIViewController *initViewController = [storyboard instantiateViewControllerWithIdentifier:@"InitialScreen"];

但是我遇到了一个错误:“Storyboard()不包含标识符为'InitialScreen'的视图控制器”

但是从截图中可以看出,视图控制器确实具有该标识符。我以前成功地使用过这种加载控制器的方式,但不知道为什么这次不起作用。有什么想法吗?

enter image description here

2个回答

5

我刚刚找到了问题-这是模拟器的问题,我的代码没有任何问题,我100%确定它没错,但是在过去的经验中,我通常发现罪魁祸首是Xcode本身。因此,即使我已经进行了多次清理和重建,我决定尝试重置模拟器中的内容-终于,它开始工作了。我认为这是模拟器缓存内容时出现的错误,并且不会更新以反映在IB中进行的更改。


0

你的故事板名称是否与你正在尝试从中加载视图控制器的故事板文件名称匹配?通常,故事板的名称类似于MainStoryboard_iPhone

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];

你还应该检查一下Storyboard ID文本框中是否有尾随空格。除此之外,其他的看起来都应该可以正常工作。

1
是的,它确实有问题。实际上,我刚刚找到了问题 - 这是模拟器的问题,我无法发现我的代码有任何问题,并且百分之百确定它没有问题。当我在过去遇到这种情况时,通常罪魁祸首是 Xcode 本身。因此,即使我多次清理和重建,我决定尝试重置模拟器中的内容 - 并成功解决了问题。我把它归结为模拟器缓存内容的错误,并且未更新以反映在 IB 中进行的更改。 - Gruntcakes
啊,是的,我以前也遇到过这些问题。很高兴你解决了这个问题。祝你编码愉快! - bvogelzang
@Mungbeans,为了帮助其他遇到同样问题的人,您可以考虑将您的解决方案整理成一个“答案”,并接受它。谢谢。 - Nate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接