如何填充静态UITableView

时间:2012-05-02 08:11:15

标签: ios uitableview fill populate

我尝试了几种方法,但似乎我错过了一些东西..

以下是我使用的代码:

- (void)configureView
{
// Update the user interface for the detail item.
  if (self.detailItem) {
    for (int idx=0; idx<16; idx++) {
        NSIndexPath *indexPath = [[NSIndexPath alloc] initWithIndex:idx];
        [self.tableView cellForRowAtIndexPath:indexPath].detailTextLabel.text = [param objectAtIndex:idx];
    }
    self.detailDescriptionLabel.text = [self.detailItem description];
  }
}

我在viewDidLoad上调用它。我的tableview有16个静态单元格,我正在使用标准的“Subtitle”类型单元格,因此在这方面不需要自定义。 textLabel.text 在设计时填写。我的tableview也在tableViewController中。我也试过标准的tableview,但似乎静态细胞不同意这种方式。

我做错了什么?


@jrturton我做了一些改变,看看发生了什么:

我在 行下添加了这三行,看看是否有任何内容:

        UITableView *tv = self.tableView;
        UITableViewCell *cell = [tv cellForRowAtIndexPath:[NSIndexPath indexPathForRow:idx inSection:0]];
        NSString *label = [[NSString alloc] initWithString:cell.textLabel.text];

首先正确分配电视,我可以看到。但除了那个细胞和标签之外,它是空的。甚至电视似乎也没有行信息..

可能是因为tableview将数据源和委托分配给tableviewcontroller ..我想我听说它不应该是那样的东西......


@jrturton这是:

static cells

tableview

storyboard

希望这有帮助。

1 个答案:

答案 0 :(得分:6)

某些日志记录会快速显示您的索引路径无效,因此不会返回任何单元格。

要创建用于UITableView的NSIndexPath,请使用以下方法:

[NSIndexPath indexPathForRow:idx inSection:0];

索引路径必须包含表的行和部分才能理解它。

您还需要从viewWillAppear:而不是viewDidLoad调用此方法,因此很早就没有填充静态表。您必须首先致电[super viewWillAppear:animated]