【问题标题】:Storyboard doesn't contain a view controller with identifier 'myWebView' [duplicate]Storyboard 不包含标识符为“myWebView”的视图控制器 [重复]
【发布时间】:2012-07-24 03:04:59
【问题描述】:

我不断收到错误:

Storyboard () 不包含标识符为“myWebView”的视图控制器。

我正在使用 UITableView,当用户单击单元格时,它将推送另一个视图并加载 UIWebView。但我确信我在情节提要中正确设置了标识符,请查看代码:

- (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];
}

图片:

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 您的项目中是否只有一个情节提要?
  • 是的,我只有一个情节提要。
  • 我刚刚发现了一个有趣的情况。如果我将模拟器的语言设置为英语,它可以正常工作,但如果我将其更改为另一种语言,那么它会在相同的错误消息中失败。我在模拟器和真 iPhone 上都试过了,还是一样的问题。知道如何解决这个问题吗?非常感谢。
  • 尝试将 Storyboard ID 更改为其他内容,然后恢复为原始 ID。这对我有用

标签: iphone storyboard identifier


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,帕特里克。我尝试了这段代码,但它仍然无法正常工作。但我刚刚发现了一个有趣的情况。如果我将模拟器的语言设置为英语,它可以正常工作,但如果我将其更改为另一种语言,那么它会在相同的错误消息中失败。我在模拟器和真 iPhone 上都试过了,还是一样的问题。知道如何解决这个问题吗?非常感谢。
    • 有趣,完全不是我最初的想法。我会调查的。
    • 这里有同样的问题,在模拟器中改为英语就可以了。当您要检查任何其他语言时,这最烦人。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 是的,遇到了同样的事情,这是最后的手段,它奏效了。一切都已正确连接并正常工作,然后在运行 pod install (cocoapods) 之后,我打开了工作区并遇到了这个错误。我还将我的故事板添加到一个组中,所以这可能是罪魁祸首。只有我能解释造成这种情况的更改。
      • 是的,这是 xCode 错误。当您创建新项目并重命名默认情节提要时,您会发现此错误。
      • 我发现通过更改 info.plist 中的 Main storyboard file base name 键,我可以让情节提要找到 viewControllerId。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        我也遇到过类似的问题。

        凭直觉,我检查了故事板认为控制器是什么 - 在实际视图下方栏上的故事板窗口中。 Storyboard 添加了空格“MyViewController”变成了“My View Controller”——无论如何,在将空格添加到 Storyboard ID 和 instantiateViewControllerWithIdentity 之后——它起作用了。

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 2017-06-11
            • 2015-03-06
            • 2011-12-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-12-16
            • 2020-06-28
            • 2016-08-28
            相关资源
            最近更新 更多