我在 Storyboard 场景中使用静态单元定义了一个表格视图控制器。表格视图本身包含六个部分,每个部分包含一个或两个单元格。我在视图控制器中通过此方法将数据写入单元格:
- (void)setUpAllCells
{
//Charge Name
NSIndexPath *path = [NSIndexPath indexPathForRow:0 inSection:0];
TableViewCellTextField *currentTextField = (TableViewCellTextField *)[[self tableView] cellForRowAtIndexPath:path];
[currentTextField.textField setDelegate:self];
//Charge Description
path = [NSIndexPath indexPathForRow:1 inSection:0];
currentTextField = (TableViewCellTextField *)[[self tableView] cellForRowAtIndexPath:path];
[currentTextField.textField setDelegate:self];
...
path = [NSIndexPath indexPathForRow:0 inSection:5];
TableViewCellControl *currentControl = (TableViewCellControl *)[[self tableView] cellForRowAtIndexPath:path];
[currentControl setValue:m_data->trailBurnTime];
}
从以下位置调用:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self setUpAllCells];
}
当我运行应用程序时,除了最后一部分之外,每个单元格都按我的预期响应。
最后一部分的单元格未连接到我的控制器,并保留故事板场景中的默认值。我在 setUpAllCells 中设置了一个断点,发现 cellForRowAtIndexPath 为最后一部分返回 nil。
我已经将这种格式用于其他五个视图控制器,但没有发生这种情况。
这是我到目前为止所尝试的:
我用我自己的自定义 TableViewCells 测试了这个,当这些都不起作用时,标准 UITableViewCells。最后一部分总是返回 nil。
我重新排列了部分和单元格。最后一部分总是返回 nil。
我完全删除了该部分。没有它,其他部分仍然可以正常工作。
我添加了更多部分。第 5 节中的任何内容在 CellForRowAtIndexPath 处返回 nil。
我在这里不知所措。我不知道是什么原因造成的。
建议?