故事板不包含带标识符的视图控制器

时间:2012-07-25 16:00:02

标签: iphone storyboard identifier

我一直得到错误:“Storyboard()不包含带有标识符'myWebView'的视图控制器。我正在使用UITableView,当用户单击该单元格时,它将推送另一个视图并加载UIWebView。但是我确信我在storyboard中正确设置了标识符,请查看代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *arrInfo = [[tableData objectAtIndex:indexPath.row] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@";"]];

favWebView *nextView = [self.storyboard instantiateViewControllerWithIdentifier:@"myWebView"];

nextView.title = [arrInfo objectAtIndex:1];
nextView.url1 = [arrInfo objectAtIndex:6];
[self.navigationController pushViewController:nextView animated:YES];
}
照片:

enter image description here 谁能告诉我如何解决这个问题?任何帮助都将非常感激。

8 个答案:

答案 0 :(得分:6)

此处的解决方案是从模拟器或设备中删除应用程序。

答案 1 :(得分:2)

感谢DennisCPH。

但不仅要从模拟器中删除应用程序,还必须将“Storyboard ID”命名为您想要的名称。

STORYBOARD - doesn't contain a view controller with identifier

答案 2 :(得分:1)

可能与您的故事板有关,也许这会有所不同。以不同方式初始化视图。

  favWebView *favWebView = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"favWebView"];

答案 3 :(得分:1)

我通过在新项目中重新创建它来解决它。这可能是xCode的一个问题。

答案 4 :(得分:1)

在构建应用程序后,故事板将被复制到MyApp.app/MyStoryboard.storyboardc。 然后,如果您对故事板进行了本地化,则会将它们复制到MyApp.app/(localization.lproj)/MyStoryboard.storyboardc。但是在iOS模拟器应用程序的原始故事板(可能是旧的,没有一些视图控制器,如果你在本地化之后添加它)仍然存在于MyApp.app/MyStoryboard.storyboardc。运行后,您的应用会从instantiateViewControllerWithIdentifier尝试MyApp.app/MyStoryboard.storyboardc。 可以通过导航到iOS模拟器文件夹并为您的应用程序探索包来检查它。

所以,这就是它崩溃的原因。

答案 5 :(得分:0)

如果您有多种语言,则应确保在所有本地化文件的故事板中设置故事板ID。我发现当我选择故事板(但没有一个本地化)并设置id时,只会修改第一个本地化文件。

答案 6 :(得分:0)

我遇到了类似的问题。

在预感中,我检查了故事板对控制器的看法 - 在实际视图下方栏上的故事板窗口中。故事板添加了空格“MyViewController”成为“我的视图控制器” - 无论如何,在将空格添加到Storyboard ID和instantiateViewControllerWithIdentity之后 - 它起作用了。

答案 7 :(得分:0)

您可能需要为视图控制器分配“故事板ID”。这解决了我。