如何将数据从表视图单元传输到视图控制器

时间:2018-06-08 20:02:56

标签: ios swift xcode8

在我的应用程序中,我有一排表格视图单元格,每个单元格都有一个步进器和三个标签。步进器更改表视图单元格中标签的值。我面临的问题是,当我尝试将此数据传输到视图控制器时,表视图打开它不会传输数据。我需要在表视图中的每个单元格给我一个特定的值,所以我有像这样设置的表格视图单元格的代码。

import UIKit

 class ItemSearchCell: UITableViewCell {

@IBAction func itemAmountChanger(_ sender: UIStepper) {
    itemQuantyWanted.text = "\(Int(sender.value))"
    SearchResults().itemResultsAmountWanted.insert(Int(sender.value), at: position)
}


@IBOutlet weak var amountChangerValue: UIStepper!

@IBOutlet weak var areaView: UIView!

@IBOutlet weak var itemName: UILabel!

@IBOutlet weak var itemPrice: UILabel!

@IBOutlet weak var itemQuantyWanted: UILabel!


override func awakeFromNib() {
    super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}

 }

然后,当按下具有tableview的viewcontroller上的按钮时,我将此数据传输到新的viewcontroller。但是,步进器不会发送数据。用于发送数据的代码是这样的。

var itemResultsName:[String]=[]
var itemResultsAmountWanted:[Int]=[]

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let nextView = segue.destination as! CategorsSearch
    if segue.identifier == "Return"{
        if itemResults.count != 0{
            for i in 0 ... (itemResults.count-1){
                nextView.returningItemsName.append(itemResultsName[i])
                nextView.returningItemsAmountWanted.append(itemResultsAmountWanted[i])
                }
            }
        }
    }

我的问题是如何在不使用seugeway的情况下将数据从表格视图单元格传输到表视图所在的视图控制器。

我使用的是最新版本的xcode 8。

1 个答案:

答案 0 :(得分:0)

我认为问题在于你如何建模你的项目。

让我们描述一下这个问题。

您需要一个列表,该列表是某些数据源的表示,如Array。如果你有一个数组,你可以匹配列表中的selectedIndex并从数组中获取值。

在TableView中你有委托,这个委托返回如何用id选择单元格,所以得到这个id并从你的数组中获取数据。

我希望能帮助您找到解决方案