我一直得到错误:“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];
}
照片:
谁能告诉我如何解决这个问题?任何帮助都将非常感激。
答案 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”。这解决了我。