gpt4 book ai didi

ios - PrepareForSegue with UITableViewController - 传递数据

转载 作者:搜寻专家 更新时间:2023-11-01 06:39:58 25 4
gpt4 key购买 nike

我的代码有一个大问题。我的问题是,如何从用户点击的 tableviewcell 中获取数据到详细 View Controller 。

我已经从数组中获取数据并将其显示在我的 tableviewcontroller 中,但是如何使用 prepareForSegue 将该数据传递到新的 viewcontroller?

这是我在单元格中显示数据的代码。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "MealTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MealTableViewCell

// Fetches the appropriate meal for the data source layout.
let meal = meals[indexPath.row]

cell.nameLabel.text = meal.name
cell.photoImageView.image = meal.photo
cell.descriptionLabel.text = meal.description
cell.servedWithLabel.text = meal.servedWith

return cell
}

问题是,在这之外调用 prepareForSegue 意味着我不能使用例如 meal.name 将名称传递给详细 View Controller ?怎么办?

希望你们能帮助我 - 我已经为此苦苦挣扎了一段时间:-(

最佳答案

正如 Arun 所指出的,您需要使用 -prepareForSegue。这是我将某些内容传递给您的详细信息 View Controller (例如 meal.name)

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Use this to determine the selected index path. You can also store the selected index path in a variable using -didSelectRowAtIndexPath
let cell = sender as! UITableViewCell
let indexPath = self.tableView.indexPathForCell(cell)

// Get the relevant detail
let meal = meals[indexPath.row]

// Create reference and pass it
let detailViewController = segue.destinationViewController as! MyDetailViewController
detailViewController.mealName = meal.name

}

最后,只需使用 StoryboardUITableViewCellMyDetailViewController 连接起来(并选择您喜欢的任何演示和过渡样式)

为 Swift 4 编辑

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let cell = sender as! UITableViewCell
let indexPath = self.tableView.indexPath(for: cell)

// Get the relevant detail
let meal = meals[indexPath!.row]

// Create reference and pass it
let detailViewController = segue.destination as! MyDetailViewController
detailViewController.mealName = meal.name
}

关于ios - PrepareForSegue with UITableViewController - 传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36766932/

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