【发布时间】:2018-03-14 23:57:05
【问题描述】:
我已经设置了一个为 segue 准备的方法,我相信我已经成功地将我的数据发送到第二个 ViewController,但我不确定如何使用传递的数据。
例如:
当用户点击我想发送到第二个 tableViewController 的蛋白质时,蛋白质被选中,然后用一组蛋白质填充它。
下面是我的第一个tableview代码:
第一个 TableView:
class OrdersTableViewController: UITableViewController {
var titleList = ["Protein","Protein Flavor", "Base", "Base Flavor", "Side", "Additional"]
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return titleList.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! OrdersTableViewCell
cell.cellTitle.text = titleList[indexPath.row]
// Configure the cell...
return cell
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "showDetailView") {
let DVC = segue.destination as! OrderDetailTableViewController
if let indexpath = self.tableView.indexPathForSelectedRow {
let proteins = titleList[indexpath.row] as String
DVC.sentData1 = proteins
print (proteins)
}
}
}
}
目前,如果我打印正在发送的值,它似乎正在工作。在这种情况下,它会打印“Protein”。但理想情况下,这就是我想要的,但我不确定该怎么做。
class OrderDetailTableViewController: UITableViewController {
var sentData1:String!
var proteinList = ["Salmon", "Meatballs", "Chicken", "Cod","Sausage", "Frittata"]
var baseList = ["White Rice", "Brown Rice"]
//take what is selected from sentData1 and populate second tableview
if sentData1 == "Protein" {
//populate tableview with proteinList
}
if sentData1 == "Base" {
//populate tableview with baseList
}
我发现的所有帖子都涉及将数据发送到普通 viewController 的 TableView,我在尝试实现它时发现它没有用处。我是 Swift 的新手,所以任何提示都值得赞赏。
【问题讨论】:
标签: swift uitableview pass-data