在storyboard-IB中向原型单元格添加项目时出现奇怪错误

时间:2012-08-27 22:56:20

标签: ios uitableview iboutlet

我有一个很大的项目(约20个场景)。其中一个是带有自定义UITableViewController类的TableViewController。我给了单元格重用标识符,并为其添加了标签。当我尝试按Ctrl +将标签拖到UITableViewController头文件以创建插座时,我收到以下错误:

  

错误:非法配置:连接“tableInfoView”不能有   原型对象作为目的地。

这是什么?我忽略了一些明显的东西吗或者我是否需要创建自定义单元格类并将其拖动到那个?如果是这样,我如何指定从UITableViewController为每个单元格唯一显示的数据?

7 个答案:

答案 0 :(得分:67)

实际上,您不能只在UITableView委托视图控制器中从动态单元原型中创建出口。

您必须继承UITableViewCell,然后将此类归因于您的原型。

然后,您可以从Label按住Ctrl键拖动到UITableViewCell子类头文件。

最后,您可以在导入UITableViewCell头文件后在代理代码中访问此插座。

Apple there在“动态行内容技术”部分中记录了这一点。

答案 1 :(得分:10)

或者你可以给标签一个标签(例如100)并使用

myLabel = [myTableView viewForTag:100];

获取标签

答案 2 :(得分:2)

我自己也有同样的错误。只是为未来的读者增加一个重要的根本原因:

在我的情况下,我将一个控件(在这种情况下为一个Button)从一个原型单元复制到下一个原型单元,并且该操作仍然引用了相邻单元。我的表有几个不同的原型单元格。

事实上,它实际上是UITableViewCell的一个合适的子类,它正确地连接到原型单元格,这使得很难真正看到错误。

答案 3 :(得分:2)

标记标签,您可以在视图控制器的任何位置找到标签,例如从表格视图中查看viewWithTag。

    UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1];


    destinationLabel.text = @"Label Destaination";

答案 4 :(得分:1)

我遇到了同样的问题但后来发现这只是一个愚蠢的错误。 我错误地将标签从Cell拖到我的控制器的@interface

这也可能是你的问题。只是交叉检查一次。

答案 5 :(得分:-1)

在原型单元格的故事板中设置.m文件中使用的正确重用标识符。我有相同的情况,这对我有帮助

答案 6 :(得分:-2)

如果问题仍然存在,那么在做好每一件事之后,只需删除所有商店并小心地重新加入它们,它对我来说非常好。