iOS5 Storyboard:在多个UITableViewControllers中重用自定义UITableViewCell

时间:2012-04-12 09:26:00

标签: ios5 storyboard uitableview

使用我设计的动态自定义单元格原型,例如 UITableViewController A (在Interface Builder / Storyboard中),可以很好地将单元格出列(通过其标识符 cellA )等等在cellForRow中...我使用自定义类(UITableViewCell子类,让我们将其命名为 MyCustomCell )来链接标签和图像拇指,它的工作非常好并且直截了当在我的 UITableViewController A

现在我创建了一个 UITableViewController B (在Storyboard中),它的自定义单元格(动态单元格)恰好具有相同的设计/功能。因此,我将这些单元格的类别切换为 MyCustomCell ,并为其指定一个新标识符 cellB

UITableViewController B 中,我将cellForRow中的单元格取消...并使用新标识符 cellB 。注意:使用 cellA 会导致崩溃,或多或少会导致崩溃。

但是当表视图显示时,在运行应用程序时, UITableViewController A 工作正常,几乎相同的 UITableViewController B 不起作用(空单元格) 。

在Storyboard中,它看起来有点偏僻,因为自定义单元格可以在 UITableViewController A 中设计,但在 UITableViewController B 中,它只是一个简单的普通单元格。尽管该类与 MyCustomCell 相关联。

如何避免将这些单元格复制并粘贴到另一个控制器(因此在进行设计更改时会在副本之间来回重复) - 而只是正确地重复使用它?

3 个答案:

答案 0 :(得分:2)

你在做什么是正确的。我不知道为什么它不起作用,重新加载tableview可能有些问题;检查数据源和数据源方法。

- (NSInteger) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger) section

而你可以做的是:拖一个

  

的viewController

然后拖动

  

的tableview

让它变得动态,做你之前做的事情;当我自己这样做时,它对我来说很好。

答案 1 :(得分:1)

说Cell来自你的自定义类并不意味着它的“设计”是相同的。你真正尝试在这里实现的(以及我正在寻找的)是“Contained”Cell的一个王者,但这只适用于iOS 6中的ContainerViewController我认为。另一个选择是为一个Cell使用一个XIB - 它应该同样好用,但是你会失去在Storyboard中获得概述的好处。

答案 2 :(得分:1)

我遇到了类似的问题,我在其中创建了一个带有uitextfield的自定义单元格。它在第一个tableview中运行良好,但在第二个tableview中运行不佳。我发现textfield的委托没有连接到自定义单元格。我通过从textfields delegate outlet连接到textfield连接两个故事板。