我决定使用不可重复使用的,自定义的UITableView细胞在我的项目,因为我在每个单元上运行一个计时器,并更新一个细胞的定时器可重复使用的细胞复位所有的计时器。实际上,定时器在我的视图控制器中运行,但输出显示在单元格中。但是这个问题更基本:为什么单元格中的UILabel文本没有被更新?我在IB:nameLabel和timeLabel中设置了2个插座,并将它们连接到单元的头文件,IB显示连接的插座。但是,即使试图将字符串移入UILabel文本字段也会导致“无”。我怀疑我正在做一些基本错误的事情,但我无法弄清楚。使用可重复使用的单元时没有问题。以下是分配和初始化可变数组来保存单元格,添加单元格,然后尝试将文字字符串移入其中的代码部分。在NSLog语句中设置断点显示cell.nameLabel.text为'nil'。任何帮助将不胜感激!我已阅读UITableViewCell参考和编程指南,但他们只讨论使用可重用单元。我认为将'reuseIdentifier'设置为'nil'会得到一个不可重用的单元,但我不确定。的UILabel文本不能设置
-(IBAction)addNewItem:(id)sender
{
// get a new item.
NRCItem *newItem = [[NRCItemStore sharedStore] createItem];
// set timerType to 1 (seconds) - default
newItem.timerType = 1;
// get a timer controller
NRCTimerControllerViewController *timerViewController = [[NRCTimerControllerViewController alloc]init];
// set timer controller's item
timerViewController.item = newItem;
// get a new tableViewCell
if(!_myTableViewCells){
_myTableViewCells = [[NSMutableArray alloc]init];
}
NRCItemCell *cell = [[NRCItemCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
cell.nameLabel.text [email protected]"cell";
NSLog(@"addTableViewCell cell= %@", cell);
[_myTableViewCells addObject:cell];
// push the timerViewController onto the navigation controller's stack
[self.navigationController pushViewController:timerViewController animated:YES];
}
输入代码在这里
你可以显示你的'cellForRowAtIndexPath'方法吗?顺便说一句,正确的方法是您需要将您的数据模型从单元中分离出来。例如,使用一个NSNumber数组,每个数字代表一行中的已用时间。在一个定时器方法中更新所有计数,并使用'cellForRowAtIndexPath'来检索显示的单元格并更新它们。 – Paulw11
这是现在正在工作的代码。我不确定发生了什么变化,但也许我没有设置代理来设置标签文本。 –