gpt4 book ai didi

ios - 如何通过 segue Swift 4 将数据从 View Controller 的 UITableViewCell 类传递到另一个 ViewController?

转载 作者:行者123 更新时间:2023-11-29 11:36:59 24 4
gpt4 key购买 nike

我有 ViewController1ViewController2ViewController1 有一个 TableView 和一个 TableViewCell 更新其 UI 的类。

我想要做的是,当用户点击 ViewController1TableView 中的 TableViewCell 内的 button 时>,然后将转到 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

现在的问题是 postIdshowSecondVc() 中,我如何将 postId 传递给 ViewController2 当我执行 segue 时?

最佳答案

店铺 postId这样你就可以在 prepare(for:sender:) 中拥有它, 然后尝试获取 ViewController2来自 segue.destination :

private var postId: Int = 0

func showSecondVc(postId: Int) {
print("button tapped : \(postId)")
self.postId = postId
self.performSegue(withIdentifier: "showSecondVc", sender: self)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showSecondVc",
let secondVC = segue.destination as? ViewController2 {
secondVC.postId = self.postId
}
}

关于ios - 如何通过 segue Swift 4 将数据从 View Controller 的 UITableViewCell 类传递到另一个 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48607308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com