【发布时间】:2018-02-04 10:54:19
【问题描述】:
我有 ViewController1 和 ViewController2.ViewController1 有一个 TableView 和一个 TableViewCell 类来更新其 UI。
我想要做的是,当用户在TableView 的TableView 中点击TableViewCell 内的button ViewController1,然后将转到ViewController2 并传递数据。
这是我尝试过的:
在 TableViewCell 类中
protocol MyDelegate : class {
func showSecondVc(postId : Int)
}
class MyTableCell : UITableViewCell {
weak var delegate : RefreshDelegate?
@IBAction func myButtonTapped(_ sender: Any) {
self.delegate?.showSecondVc(postId: posts.postId)
}
}
在 ViewController1 中:
class ViewController1: UIViewController ,UITableViewDataSource, UITableViewDelegate , MyDelegate {
func showSecondVc(postId: Int) {
print("button tapped : \(postId)")
self.performSegue(withIdentifier: "showSecondVc", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showSecondVc" {
//here I want to pass the **postId** to ViewController2
}
}
}
到目前为止,当在任何tableCell 中单击按钮时,我可以在ViewController1 中获得postId。
现在的问题是postId 在showSecondVc() 内部,当我执行segue 时如何将postId 传递给ViewController2?
【问题讨论】:
标签: ios uitableview delegates swift4