2012-04-12 32 views
13

使用我设计的动态自定义单元原型,例如UITableViewController A(在Interface Builder/Storyboard中)非常适合将单元取出(通过其标识符, 塞拉),并在这样的...... cellForRow我使用一个自定义类(子类的UITableViewCell,让我们将其命名为MyCustomCell)连接起来,标签和图像的拇指和它的工作原理都非常好,直截了当我的UITableViewController一个iOS5 Storyboard:在多个UITableViewControllers中重用自定义UITableViewCell

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

的UITableViewController乙,我出列在cellForRow小区...,并使用新的标识符cellB。注意:使用cellA这里会导致崩溃,或多或少显然。

但当表视图显示了,在运行应用程序时,的UITableViewController一个工作得很好,和几乎相同的的UITableViewController乙不起作用(空单元格)。

在故事板,它看起来有点过了一点,因为自定义单元格是的UITableViewController一个乙内,但在的UITableViewController可设计的,它只是一个简单的,朴素的细胞。尽管该类与MyCustomCell相关联。

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

+1

一个很好的问题,正是我一直想知道的。如果我添加一个新的UITableViewCell的子类,为它创建一个XIB的选项是灰色的。 – theLastNightTrain 2012-04-17 13:20:52

+1

我认为这是回答很好,在http://stackoverflow.com/questions/9245969/in-a-storyboard-how-to-make-a-custom-cell-for-use-with-multiple-controllers – wolak 2012-05-08 17:18:23

回答

2

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

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

,而你可以做的是:拖动

的viewController

然后拖动

的tableview

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

1

说出单元来自您的自定义类并不意味着它的“设计”相同。你真正想在这里实现的(以及我在寻找的)是“Contained”Cell的一个王者,但是这只能在iOS 6中用ContainerViewController来实现。另一种选择是为那个Cell使用一个XIB - 它应该同样好,但是你失去了在Storyboard中进行概述的好处。

0

我有一个类似的问题,我创建了一个自定义单元格,里面有一个uitextfield。它在第一个tableview中运行良好,但不在第二个。我发现textfield的委托没有连接到自定义单元格。我通过将textfields委托出口连接回文本框来连接故事板。