【问题标题】:iOS5 Storyboard: Reuse Custom UITableViewCell in multiple UITableViewControllersiOS5 Storyboard:在多个 UITableViewControllers 中重用自定义 UITableViewCell
【发布时间】:2012-04-24 15:21:31
【问题描述】:

使用我在 UITableViewController A(在 Interface Builder/Storyboard 中)设计的动态自定义单元格原型,非常适合将单元格出列(通过其标识符 cellA ) 等在 cellForRow 中...在我的 UITableViewController A 中。

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

UITableViewController B 中,我将 cellForRow 中的单元格出列...并使用新的标识符 cellB。注意:在此处使用 cellA 会导致崩溃,或多或少很明显。

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

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

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

【问题讨论】:

  • 一个好问题,正是我一直想知道的。如果我添加一个新的 UITableViewCell 子类,为其创建 XIB 的选项将显示为灰色。
  • 我认为 stackoverflow.com/questions/9245969/… 回答得很好

标签: ios5 storyboard uitableview


【解决方案1】:

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

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

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

视图控制器

然后拖一个

表格视图

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 正确。只需将其从第二个 VC/TV 中拖出...当然会创建一个重复的命名变量;但没关系。您可以将其注释掉(或删除)。然后将 xib/storyboards 连接到相同的自定义 UITableViewCell 中,以便在 UITableView 之外使用。
      猜你喜欢
      • 2012-09-16
      • 2011-12-13
      • 2014-05-18
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多