使用委托协议将数据从tableView单元格传递到另一个视图控制器

时间:2018-09-12 11:18:48

标签: ios swift

如何使用委托协议swift 4将数据从tableViewCell传递到另一个视图控制器并在标签中打印数据

2 个答案:

答案 0 :(得分:0)

只需简单地将一个变量值传递给另一个Viewcontroller,然后在推送时就传递值。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
    let vc = self.storyboard.instantiateViewController(withIdentifier: "AnotherVC") as! AnotherVC
    vc.variable = your value
    self.navigationController?.pushViewController(vc, animated: true)
}

为什么需要使用协议?

答案 1 :(得分:0)

func tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath){

///当您将视图控制器值传递给另一个VC

let vc = self.storyboard.instantiateViewController(withIdentifier: "AnotherVC") as! AnotherVC
vc.variableValue = your value
self.navigationController?.pushViewController(vc, animated: true)

///您需要将单元格值传递给另一个VC

 let vc = self.storyboard.instantiateViewController(withIdentifier: "AnotherVC") as! AnotherVC
 let variable = tableView.cellForRow(at: indexPath)as! YourCell
 vc.varibleValue = cell.value

}

请勿使用协议,因为在这种情况下,您需要使用子协议将值从子级转换为父级。如果您将数据从A传递到B,只需传递值就足够了