13

Using a dynamic, custom cell prototype that I design in, say, UITableViewController A (in Interface Builder/Storyboard), works really well with dequeuing the cell (through its identifier, cellA) and such in cellForRow... I use a custom class (UITableViewCell subclass, let's name it MyCustomCell) to link up the labels and image thumb and it works all pretty well and straight forward in my UITableViewController A.

Now I create a UITableViewController B (in Storyboard), which happens to have the exact same design/functionality for its custom cells (dynamic cells). So I switch the class of these cells to the MyCustomCell and give it a new identifier, cellB.

In UITableViewController B, I dequeue the cell in cellForRow... and use the new identifier cellB. Note: Using cellA here leads to a crash, more or less obviously.

But when the table view shows up, while running the app, the UITableViewController A works just fine, and the almost identical UITableViewController B does not work (empty cells).

In Storyboard, it looks sort of off a bit, because the custom cell is designable within the UITableViewController A but in UITableViewController B, it's just a simple, plain cell. Despite the class associated to MyCustomCell.

How would one avoid copy&pasting these cells to the other controller (and therefore heavily going back and forth between copies when making design changes) – and rather just properly re-use it?

4

3 回答 3

2

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

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

而你可以做的是:拖动一个

视图控制器

然后拖一个

表视图

让它充满活力,做你之前做过的事情;当我自己这样做时,它对我来说效果很好。

于 2012-10-05T09:02:04.273 回答
1

说 Cell 来自您的自定义类并不意味着它的“设计”相同。您真正尝试在这里实现的(以及我正在寻找的)是一些“包含”单元格之王,但我认为这仅适用于 iOS 6 中的 ContainerViewController。另一种选择是对那个 Cell 使用 XIB——它应该同样好用,但是你会失去在 Storyboard 中进行概览的好处。

于 2013-01-10T09:48:44.507 回答
1

我有一个类似的问题,我创建了一个自定义单元格,里面有一个 uitextfield。它在第一个 tableview 中运行良好,但在第二个中运行良好。我发现文本字段的委托未连接到自定义单元格。我通过从文本字段代表出口连接回文本字段来连接故事板中的两者。

于 2013-02-06T11:15:34.817 回答