识别选择了哪个tableviewcell并将值传递给另一个视图控制器[重复]
Posted
技术标签:
【中文标题】识别选择了哪个tableviewcell并将值传递给另一个视图控制器[重复]【英文标题】:Recognize which tableviewcell is selected and pass value to another viewcontroller [duplicate] 【发布时间】:2017-05-16 09:12:18 【问题描述】:我正在尝试识别选择了哪个 tableviewcell,然后我想获取该单元格的标签值并将其传递给下一个视图控制器。我的单元格有一个标签值string
和一个数字值Int
。我正在使用 firebase 数据库来获取所有这些数据。
我的代码:
import UIKit
class PlacesTableViewController: UITableViewController
//MARK: Properties
@IBOutlet weak var placesTableView: UITableView!
var places = [Places]()
override func viewDidLoad()
super.viewDidLoad()
// Loads data to cell.
loadData()
override func numberOfSections(in tableView: UITableView) -> Int
return 1
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
//return the number of rows
return places.count
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
// Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "PlacesTableViewCell"
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? PlacesTableViewCell else
fatalError("The dequeued cell is not an instance of PlacesTableView Cell.")
let place = places[indexPath.row]
cell.placeLabel.text = place.name
cell.ratingControl.rating = place.rating
return cell
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
print(places[indexPath.section])
self.performSegue(withIdentifier: "ShowCommentsTableViewController", sender: nil)
【问题讨论】:
【参考方案1】:你可以关注这个帖子,有用send-data-from-tableview-to-detailview-swift
在移动到目标视图控制器之前,您必须在目标视图控制器中创建变量并将数据存储在这些变量中。 此链接将为您提供帮助。
【讨论】:
我明白我必须做什么谢谢你的帖子!但是当我尝试覆盖 prepareForSegue 函数时遇到了问题。 欢迎在***中发帖提问。:) 我找到了。这是一个 Swift 3 更新代码。override func prepare(for segue: UIStoryboardSegue, sender: Any?)
而不是我用的。【参考方案2】:
试试这个:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
let selectedPlace = places[indexPath.section]
self.performSegue(withIdentifier: "ShowCommentsTableViewController", sender: selectedPlace)
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
if let selectedPlace = sender as? Places,
let destViewController = segue.destination as? SecondViewController
destViewController.place = selectedPlace
【讨论】:
以上是关于识别选择了哪个tableviewcell并将值传递给另一个视图控制器[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 uitableview 选择与 indexpath 值居中
如何在 Swift 3.0 中将 TableViewCell 值传递给新的 ViewController?
Swift iOS - 如何将直接从 TableViewCell 的子类中获取的值传递给 TableView 的 didSelectRow?