Storyboard静态单元格:dequeueReusableCellWithIdentifier返回nil
在cellForRowAtIndexPath:
使用storyboard,静态单元格cellForRowAtIndexPath:
行
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
总是返回nil
。
我检查了以下内容:
- 单元格的标识符在IB / Storyboard中正确设置,并在代码中使用相同的标识符。 我多次证实了这一点。
- 我没有在其他地方实例化视图控制器(这是在这个stackoverflow问题 )。
我的视图控制器是UITableViewController
一个子类,当然,它被包含在故事板中的ad hoc导航控制器中。 怀疑我的视图控制器不知道故事板中定义的单元格标识符,因为它可能是另一个实例,这里是“实例化”它的代码。 在prepareForSegue:
我使用
CustomViewController *vc = [[[segue destinationViewController] viewControllers] objectAtIndex:0];
在这里完成的视图控制器的其他自定义(设置属性等)工作正常。
我正在使用静态单元格,因为节和行数不会更改,并且每个单元格都包含静态文本(以及其他控件或要编辑的文本字段)。
在我看来,这是一个非常常见的任务(在视图控制器的数据源方法中定制来自故事板的静态单元格)。 我究竟做错了什么?
在静态内容的表格视图中,你不需要实现任何的数据源方法(包括tableView:cellForRowAtIndexPath:
所以你永远不会出列这些单元格,也不会出现静态内容的列表(你可以参与进来)。
如果你想获得一个指向特定单元格的指针:
-
使用
cellForRowAtIndexPath:
从表视图获取它:UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
-
有一个特定的细胞出口,并直接定制它。
- 遍历单元格并检查
reuseIdentifier
属性以获取您感兴趣的单元格。
任何这些事情都可以在viewWillAppear或类似的。
如果你想在你的单元格中有完全不同的内容,那么静态单元格可能不是正确的select。 您应该使用dynamic原型(注意故事板中可以有多个原型),而使用传统的数据源方法。
解决scheme是使用原型单元而不是静态单元。 我仍然把支票交给@ jrturton,因为他是第一个让我这个主意的人。
我刚刚解决了另一个有趣的错误:与“自定义”types的原型单元格,如果您尝试填充文本cell.textLabel
,它会自动工作,但所有其他子视图行为非常奇怪。 我现在只是使用我的自定义标签,一切正常。
干杯,谢谢大家帮忙。
与上面的答案不同,
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
不pipe用。 但提到的方法来创buildcell
本身的出口正在工作。
还可以在cell
放置诸如UIButtons
或UITextFields
视图,并且还可以有这些视图。
两种方法也可以组合使用。 例如,为特定的单元格设置cell.textLabel.text
,并从控件出口访问另一个控件。
在故事板中,静态单元不能实现<UITableViewDataSource>
协议中的方法。
所以你可以使用包含在<UITableViewDelegate>
。
你仍然可以使用静态UITableView
dataSource /委托方法,你不需要创build新的单元格。
如果你想用dataSource方法修改单元格,在cellForRowAtIndexPath:
:
UITableViewCell * cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
然后开始修改单元格。
- 如何在故事板中使用xib文件作为自定义视图
- iOS – prepareForSegue不等待completionBlock完成
- 从故事板中初始化的UIViewController调用方法 – 目标c
- UITableView不加载数据
- Xcode中的iOS 9警告 – 此文件设置为构build比项目部署早的版本。 function可能受到限制
- 基于故事板模式的login屏幕示例
- UIViewController中的Xcode 5.1 UITableView – 自定义TableViewCell Outlets为零
- 如何通过iOS中的故事板将UISearchBar添加到NavigationBar
- 在运行时在局部故事板之间切换