将选定的行标题传递回主表视图控制器

时间:2016-08-10 22:22:44

标签: swift xcode7

我有一个主表视图控制器,静态单元格有标题,然后是细节标签。当用户点击"单元格1"它们被带到具有静态单元的第二个表视图控制器。他们从列表中选择(只能选择一个单元格)然后当他们点击后退按钮时,他们选择的任何单元格标题都会被转移到他们点击的单元格的详细标签中。主视图控制器具有到每个细节标签的出口。我已经搞砸了两天,似乎无法让它发挥作用

2 个答案:

答案 0 :(得分:1)

将类型为DismissDelegate的委托属性添加到第二个视图控制器并将其设置为第一个控制器。 添加此协议

protocol DismissDelegate {
     func selectedCell(index : int)
}

当第二个视图被驳回时,例如在viewWillDisapper方法中,调用selectedCell方法并将其传递给selectedCell

delegate.selectedCell(self.tableView.indexOfSelectedCell) //i don't know the correct function

然后在主视图中,控制器符合协议并对索引执行任何操作

func selectedCell(index : int) {
    //whatever you need to do with the index
}

答案 1 :(得分:0)

有几种方法可以解决这个问题。

  1. 使用委托

    您只需实现委托并从辅助视图控制器获取数据。 在辅助视图控制器中,您可以像这样调用委托。

    self.delegate.dataInputed(XXX)

    将调用第一个视图控制器的dataInputed方法。 在dataInputed方法中,您可以更新所选indexPath的数据源的值,并重新加载数据

  2. 发送通知

    您只需保留选定的表格单元格indexPath,并在从辅助详细信息视图控制器接收通知后,可以更新所选indexPath的数据源的值,然后重新加载该表格。