使用故事板、静态单元格cellForRowAtIndexPath:
线
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
总是返回nil
.
我已经检查了以下内容:
- 单元格的标识符在 IB/Storyboard 中正确设置,并且我在代码中使用相同的标识符。我多次验证过这一点。
- 我没有在其他地方实例化视图控制器(这是问题所在)这个计算器问题 https://stackoverflow.com/questions/9797821/keep-getting-nil-from-dequeuereusablecellwithidentifier).
我的视图控制器是的子类UITableViewController
,当然,包裹成ad hoc故事板中的导航控制器。怀疑我的视图控制器不知何故不知道故事板中定义的单元标识符,因为它可能是另一个实例,这里是“实例化”它的代码。在prepareForSegue:
, I use
CustomViewController *vc = [[[segue destinationViewController]
viewControllers] objectAtIndex:0];
此处完成的视图控制器的其他自定义(设置属性等)工作正常。
我使用静态单元格是因为部分和行数不会改变,并且每个单元格包含静态文本(以及要编辑的其他控件或文本字段)。
在我看来,这是一个非常常见的任务(在视图控制器的数据源方法中从故事板自定义静态单元)。我究竟做错了什么?
对于表视图中的静态内容,您无需实现任何数据源方法(包括tableView:cellForRowAtIndexPath:
,所以你永远不会使单元出队。静态内容不会出队(无论如何,您可以参与其中)。
如果您想获取指向特定单元格的指针:
这些事情中的任何一个都可以在 viewWillAppear 或类似的中完成。
如果您希望单元格中的内容与故事板上的内容完全不同,那么静态单元格可能不是正确的选择。您应该将动态原型(请注意,故事板中可以有多个原型)与传统数据源方法一起使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)