0

我正在加载一个包含两个标记标签的 UITableViewCell。用户将离开当前视图,包含以下代码并转到另一个视图。在那里设置了一个名称值,用户回到这个视图(下面的代码)。我将他们在另一个视图中设置的名称分配给名称标签。这行得通,但我得到一个新标签在我的其他标签之上未对齐。看来我保留了这个单元格的两个版本。不太确定。关于可能导致这种行为的任何建议?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = nil;
if(indexPath.section == 0)
{   
    cell = [tableView dequeueReusableCellWithIdentifier:@"CellNameIdentifier"];
    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"CellentName" owner:self options:nil];
        cell = cellName;
        //self.cellName = nil;
    }
}
return cell;
}
- (void)viewDidAppear:(BOOL)animated {
UILabel *startdate = (UILabel *)[cellName viewWithTag:1];
startdate.text = aName;
[super viewDidAppear:animated];
}
4

1 回答 1

1

从这段代码的外观来看,您不太可能得到“一个新标签在我的其他标签之上未对齐”,更像是绘图未能正确地重新绘制在事物之上。要完成这项工作,您可以尝试调用 [tableView reloadData] 或使用观察者,但我认为有更好的方法。

您应该能够将对象传递到您的其他视图,修改对象(而不是标签)并以这种方式移动数据。换句话说,在表格视图上,它加载对象,在 cellForRowAtIndexPath 内部,它加载单元格并使用对象数据设置标签名称。推入第二个视图并将对象作为属性传递。在那个屏幕上随心所欲地操纵这个属性,当你弹出视图时,没有特殊的逻辑。第一个表视图再次显示保存在您正在操作的对象中的任何内容。

于 2009-02-27T17:09:18.387 回答