我在第一个控制器中有tableView,我正在使用xib中定义的tableviewcells。现在,当我点击一个tableviewcell时,我需要打开一个当前的视图控制器,并将tableviewcell的视图传递给第二个视图控制器。
我在第二个视图控制器中使用init方法,并将第一个VC的cell.contentView传递给第二个VC。
工作正常tableviewcell内容视图显示在2ND VC第一个表部分,但是当我按下接近第二个VC时.TableViewCell内容视图从第一个VC消失。
我无法这样做。我在网上看到他们在第二个VC上再次注册XIB,或者使用存档和解压缩,但这些都是耗时的操作,我只是想将tableviewcell内容视图传递到第二个vc,当我关闭第一个VC时我希望它回到那里
任何帮助都将不胜感激。
View是已按下的tableview单元格的cell.contentView
self.superViewCell = View;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
HVAPParentTableViewCell * cell = [[HVAPParentTableViewCell alloc] init];
[cell.contentView addSubview:self.superViewCell];
return cell;
}
答案 0 :(得分:1)
1st 视图控制器中可能缺少该单元格,因为您删除了contentView
并将其传递给 2nd 视图控制器。这显然是您可能不想使用的反模式。您可能希望转移到 2nd 视图控制器单元的“状态”而不是其contentView
,并初始化具有相同单元数据的新单元。
对你实际想要达到的目标知之甚少,我的一般建议是使用与 1st中相同的xib和单元标识符注册 2nd 视图控制器的表视图视图控制器。现在,您只能传递选定单元格的标识符(以便您知道在cellForRowAtIndexPath
中为传递的单元格出列时使用哪个标识符)和单元格的数据。然后,您可以使用来自 1st 视图控制器的单元格数据初始化 2nd 视图控制器中的相同单元格。