故事板似乎没有正确加载

时间:2013-04-04 14:56:53

标签: ios objective-c cocoa-touch uistoryboard uistoryboardsegue

我正在处理的项目中有一个故事板,但最近我注意到我遇到了问题。无处不在,我的代码现在告诉我需要为一个单元标识符注册一个类

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier rootCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

(我在故事板中有单元原型,所以我不相信我需要。)如果我执行

[tableView registerClass:<my class> forCellReuseIdentifier:<identifer>];

它将超越它,但是当我

时它会挂断

[self performSegueWithIdentifier:<my ID> sender:self];

告诉我它无法找到segue。我能够确认在故事板中使用正确的标识符设置了segue。

有谁知道问题可能是什么?

前段时间我在故事板上进行了重命名,但我更新了info.plist,我很确定它之后仍然有用。

如果我在另一个项目中重新创建故事板,它可以正常工作,但如果我在这个项目中重新创建故事板,它就会失败。

编辑:我确实在IB中正确设置了类 这也是一个手动的。

编辑:添加了准确的错误措辞。

2 个答案:

答案 0 :(得分:1)

我刚刚发生了这件事。

必须在我的viewDidLoad

中添加[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WhateverCellID"];

我正在使用常规的viewController,意识到我的错误,并切换到tableViewController并开始得到同样的错误。

或者使用'UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];` 如果没有indexPath选项,这是一个不同的调用,不需要注册,可能符合您的需求。

答案 1 :(得分:0)

如果您从iPhone / iPad /模拟器中删除故事板,或者在您调试它的任何地方,然后在Xcode中清理,那么构建&amp;跑,你看到不同的结果?我问的原因是,每次构建Xcode时,都会得到项目所包含的所有内容的联合。因此,如果您重命名故事板,并且没有完全清理,那么您可能在构建的产品中同时拥有两个故事板。