我已使用以下说明创建了自定义单元格类:http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder/
现在,我有两个视图控制器:MyPostsViewController
和CustomCellViewController
。自定义单元格只是一个UITableViewCell
的单元格,并且已声明并连接了两个标签。 MyPostsViewController
是使用这些自定义单元格的UITableView
。但是,我不确定如何从CustomCellViewController
访问MyPostsViewController
的两个标签。我想从MyPostsViewController
访问它们,因为这是cellForRowAtIndexPath
方法所在的位置以及我想要设置标签值的位置。我该怎么做?
答案 0 :(得分:1)
如果您按照发布的说明操作,则不需要CustomCellViewController
。只需在MyPostsViewController
。
要访问您单元格的各个子视图,请为每个子视图分别设置tag
,然后使用[cell viewWithTag:42]
检索它们。
答案 1 :(得分:1)
您应该在cellForRowAtIndexPath:
中自定义(设置标签的值)。为此,您可以在IB本身中为标签设置标签(在“属性”检查器中查找标签字段)。假设你为Label1& amp设置1 2为Label2。然后,您的代码看起来像(从您发布的链接复制) -
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BDCustomCell"];
if (cell == nil) {
// Load the top-level objects from the custom cell XIB.
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"BDCustomCell" owner:self options:nil];
// Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
cell = [topLevelObjects objectAtIndex:0];
}
//customize the cell here
UILabel* label 1 = [cell viewWithTag:1];
label1.text = @"my text";
//similarly label 2
return cell;
}
HTH,
阿克沙伊
答案 2 :(得分:1)
我认为最简单的方法是在自定义UITableViewCell子类上定义IBOutlets。然后,在设计XIB时,按住CTRL键并单击自定义单元格。你应该看到那里的插座。拖放将您的插座连接到您的标签,就像您通常使用视图一样。最后,在您的cellForRowAtIndexPath方法中访问这些IBOutlets。