我尝试了几种方法,但似乎我错过了一些东西..
以下是我使用的代码:
- (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这是:
希望这有帮助。
答案 0 :(得分:6)
某些日志记录会快速显示您的索引路径无效,因此不会返回任何单元格。
要创建用于UITableView的NSIndexPath,请使用以下方法:
[NSIndexPath indexPathForRow:idx inSection:0];
索引路径必须包含表的行和部分才能理解它。
您还需要从viewWillAppear:
而不是viewDidLoad调用此方法,因此很早就没有填充静态表。您必须首先致电[super viewWillAppear:animated]
!