将视图从一个控制器传递到其他控制器iOS

时间:2016-05-16 10:55:22

标签: ios objective-c iphone uitableview uiviewcontroller

我在第一个控制器中有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;

      }

1 个答案:

答案 0 :(得分:1)

1st 视图控制器中可能缺少该单元格,因为您删除了contentView并将其传递给 2nd 视图控制器。这显然是您可能不想使用的反模式。您可能希望转移到 2nd 视图控制器单元的“状态”而不是其contentView,并初始化具有相同单元数据的新单元。

对你实际想要达到的目标知之甚少,我的一般建议是使用与 1st中相同的xib和单元标识符注册 2nd 视图控制器的表视图视图控制器。现在,您只能传递选定单元格的标识符(以便您知道在cellForRowAtIndexPath中为传递的单元格出列时使用哪个标识符)和单元格的数据。然后,您可以使用来自 1st 视图控制器的单元格数据初始化 2nd 视图控制器中的相同单元格。