Storyboard不包含标识符为的视图控制器

我一直收到以下错误:

Storyboard (<UIStoryboard: 0x7ebdd20>) doesn't contain a view controller with identifier 'drivingDetails'

这是代码:

- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


UIViewController *controller =  [self.storyboard instantiateViewControllerWithIdentifier:@"drivingDetails"];
controller.title = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"name"];
[self.navigationController pushViewController:controller animated:YES];
}

我已经在UIStoryboard上设置了identifier,但仍然出现此错误。

enter image description here


164607 次浏览

输入标识符时,如果没有选择正确的视图控制器,只需检查一次,如果完成,则再次重复该过程。

修好了!在我的例子中,不仅必须设置Segue中的标识符DrivingDetails,还必须将我的TableViewController中的标识符设置为DrivingDetails..查看我的图片:

enter image description here

我还删除了导航视图控制器,所以现在2个表格视图控制器直接与“推”动画连接。

**为Xcode 7.0编辑**

您必须设置StoryboardID(在本例中,ViewController嵌入在导航控制器中):

let lastMinVc  = mainStoryBoard.instantiateViewControllerWithIdentifier("lastMinuteNavController") as! UINavigationController

enter image description here

仅供将来参考:

我在IOS 6上使用故事板进行开发。

我也遇到了同样的问题,但我在检查器中找不到“标识符”字段。 相反,只需将名为“ Storyboard ID ”的字段设置为您将标识符命名的名称。此字段可在检查器中的“显示身份检查器”选项卡下找到。

[注意-下面的注释表明,有些人发现他们需要(也?)在检查器中设置故事板ID下面的字段“恢复ID ”。单击“使用故事板ID ”似乎还不够。]

下面

有一张图片可供参考:(在本例中,我将我的标识符命名为与我的类相同) enter image description here

在将新的VC添加到故事板后,出现了这个问题,但只是在设备上,而不是在模拟器上。事实证明,这是由于有多个故事板本地化-VC只添加到主要的一个。我尝试删除其他本地化(其中一个是我的iPhone使用的),但仍然有错误。最后,我不得不重新创建其他本地化,每个版本中都有新的VC.

我得到了同样的错误,我可以通过在我的项目中更改以下更改来解决这个问题。我已经在检查器面板中提到了我的类名,然后问题就解决了。 转到->右面板有身份检查器 在“自定义类”部分

Class:您的类名(ViewController)

在标识部分 脚本ID:您的脚本ID(ViewController名称)

在此之后,单击“使用故事板ID ”选项。就这样,问题就解决了。希望对你有帮助..

我找到了.. 点击故事板中的视图控制器, 单击“ VC Attributes Inspectors ”(VC属性检查器)上的左起第三个图标-设置调用名称的位置 在那个屏幕上写着“身份”——我的被隐藏了,我不得不点击“身份”这个词。 然后它显示StoryboardId-从代码中添加标识符,完成

使用您的标识符(@“ DrivingDetails ”)作为故事板ID.

在Identity Inspector(左侧第3个图标)中修改“ Storyboard ID ”应该可以工作。

如果没有,并且您确定没有输入错误,请尝试清理项目(“ Product ”->“ Clean ”,或者简单地使用Command+Shift+K)。

标识位于Xcode 6.3.2的Identity Inspector选项卡中,名为“情节提要ID ”,并选中了“使用情节提要ID ”选项。 enter image description here

Xcode 7-13中,

当您更改故事板ID时,您会遇到这样的错误,

只需干净您的项目(命令+轮班+K

编译器显示以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Storyboard (<UIStoryboard: 0x7fedf2d5c9a0>) doesn't contain a
ViewController with identifier 'SBAddEmployeeVC''

在这里,创建的故事板的对象不是包含ViewController的主故事板。作为_,我们工作的ABC_0被命名为 main.storyboard。因此,我们需要对main.storyboard的对象进行引用。

使用以下代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];

在这里,storyboardWithName是我们正在使用的故事板文件的名称,bundle指定故事板所在的包(即mainBundle)。

我的一些视图控制器缺少Storyboardidentifier属性。

之前:

<viewController
id="pka-il-u5E"
customClass="YourViewControllerName"
customModule="ModuleName"
customModuleProvider="target"
sceneMemberID="viewController">

之后:

<viewController
storyboardIdentifier="YourViewControllerName"   <----
id="pka-il-u5E"
customClass="YourViewControllerName"
customModule="ModuleName"
customModuleProvider="target"
sceneMemberID="viewController">

我尝试了上面所有的解决方案,但都没有效果。

我所做的是:

  • 项目清洁
  • 删除派生数据
  • 重启Xcode
  • 重新输入前面答案中显示的Storyboard ID(在IB中)。

然后就成功了。令人震惊的是,我在Interface Builder中输入了StoryBoar ID,在再次打开Xcode后,它被删除了。

希望这能帮助一些人。

这很简单,在主故事板中选择相应的视图控制器,并检查故事板是否存在,在标识符中使用它,给出一个名称并使用它。

在这里,我的第一个是故事板 假设VC=self.storyboard?.instantiateViewController(withIdentifier:“ Firstone ”)为!TabbarViewController

对于那些与@Ravi Bhanushali有相同问题的人,这里有一个SWIFT 4解决方案:

let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)

let storyboard = UIStoryboard(name: "StoryboardFileName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "StoryboardID")
self.present(controller, animated: true, completion: nil)

注意:

  • "StoryboardFileName"是情节提要的文件名是情节提要的ID.
  • "StoryboardID"是您在Identity Inspector中为该情节提要设置的手动的ID(请参见下面的屏幕截图)。

Storyboard ID

有时人们认为第一个是故事板ID,第二个是视图控制器类名,因此请注意两者的区别。

Xcode拖放窗格消失了!

enter image description here enter image description here

清理所有东西和关闭Xcode并不能解决我的问题。

我必须删除ViewController并创建一个具有新标识符的新ViewController.

注意:如果在项目中使用CocoaPods,则首先运行pod deintegraterm Podfile.lock

然后,在任何第三方代码编辑器(如Vscode)中打开项目文件夹,并对ViewController名称进行全局搜索,从而引发错误。

  1. 重命名/修复您发现的任何错误名称。
  2. 保存所有更改。
  3. 清理并构建项目。

现在应该一切正常。

当您在Xcode中重命名文件时,这是最常见的原因。

我也面临着同样的问题。我已经给出了标识符,但编译器给出了问题,所以我做了一个新的控制器,给那个控制器一个新的ID,并添加了它,它工作得很好!我也添加了豆荚,但不知道为什么会出现错误,但现在它消失了!另外,还可以尝试通过按Cmd+Shift+K键来清理您的项目。让我知道它是否有效。

检查你的语言,可能是(基地)有你的控制器,但可能是特定的故事板没有它