2013-05-19 63 views
0

我有一个UITableView,我想在其他处理后改变一些静态单元。我为我想要修改的单元设置了网点,但是当我使用NSLog查看它们时,它们显示为零,这表明我没有正确的单元格。例如,下面的图片我想开始时间加在一起只有像我一样的日期(创建,我拿到了当前日期的细胞时的日期已完成)的标签,如何改变tableview单元格文本?

enter image description here

我点击揭示指示器,将我带到另一个场景(这是在Storyboard中创建的,使用segues从一个场景到另一个场景),在那里我获得了我需要的两次。然后我回到主场景(如图所示)并尝试更改开始时间标签,但没有任何反应。标签试图改变它之前的的NSLog返回此:

oStartTimeCell.textLabel.text:(空)

我已经在苹果文档上阅读这个文本框是只读只要。如果在这种情况下是这样的话,有没有办法用更新的信息重新加载单元格?还是有另一种方法来做到这一点?

+0

使用静态单元格,您可以在控制器和单元格中的标签之间设置出口,而不是单元格本身。 – rdelmar

回答

2

您正在使用错误的方法。您不应该使用插座创建对单元格的引用。一旦单元格移出可见视图,插座将为空或包含垃圾数据。即使(在你的情况下)单元格永远不会移出视图,我认为它表明你正试图以一种并不意味着的方式使用UITableView。

取而代之,将要显示在单元格中的数据放在数据源中,例如,数组。

tableView应该使用dataSource来配置显示在单元格的textLabel中的值。一旦您想要更新单元格中显示的文本,请更改dataSource中的值并在tableView上调用reloadData以强制tableView调用-tableView:cellForRowAtIndexPath:和相关的UITableViewDataSource方法。

+0

我想你在这里的东西......现在,表格使用静态单元;我必须改变他们的动态..我把它编码,我会回到你身边,可能明天...... – SpokaneDude

0

尝试创建一个IBOutlet每个细胞,并将其连接:

IBOutlet UITableViewCell *cell1; 
IBOutlet UITableViewCell *cell2; 
IBOutlet UITableViewCell *cell3; 

,改变你的方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if(indexPath.row == 0) return cell1; 
    if(indexPath.row == 1) return cell2; 
    if(indexPath.row == 2) return cell3; 

    if (cell == nil) { 
     //create cell; 
    } 
    return cell; 
} 
+0

-cellForRrowAtIndexPath只在最初创建单元时被调用;一旦我回去,它永远不会再被调用。奥特莱斯已经创建并充满了我从日期/时间例程中获得的数据。 – SpokaneDude

0

您是否使用一个UILabel显示的文本? 。如果你只是创建一个插座UIlabel并更新它的任何方法,如cellForRwoAtIndexPathdidSelectRowAtIndexPath等,这是你加载tableView后调用。

如果您不使用UILabel并只使用cell.textLabel,则可以在cellForRowAtIndexPathMethod中执行类似 cell.textLabel.text = @"ChangedText"的操作。通过检查indexPath.row

确定您正在编辑所需的单元[tableView reloadData]要调用cellForRowAtIndexPath。

+0

-cellForRowAtIndexPath永远不会在最初构建单元格后调用...(见下面的注释) – SpokaneDude

+0

你在做reloadData吗? – ila

+0

是的,它什么都没做...... – SpokaneDude

相关问题