1

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

这是我使用的代码:

- (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 个静态单元格,并且我使用的是标准的“字幕”类型单元格,因此不需要在这方面进行自定义。textLabel.text在设计时填充。我的表格视图也在 tableViewController 中。我也尝试过使用标准的 tableview 人口,但似乎静态单元格不同意这种方式。

我究竟做错了什么?


@jrturton 我做了一些更改以查看发生了什么:

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

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

首先,电视分配正确,我可以看到。但除了那个单元格和标签是空的。即使电视似乎也没有行信息..

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


@jrturton 这里是:

静态细胞

表视图

故事板

希望这可以帮助。

4

1 回答 1

6

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

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

[NSIndexPath indexPathForRow:idx inSection:0];

索引路径必须包含一行和部分,以便表格理解它。

您还需要从而viewWillAppear:不是 viewDidLoad 调用它,静态表不会在早期填充。而且你必须先打电话[super viewWillAppear:animated]

于 2012-05-02T08:18:17.553 回答