SWIFT Как взять строку значения из TableView и передать ее в var? - PullRequest
0 голосов
/ 26 марта 2020

Возможно, это простой вопрос, но я не могу понять это. Я хочу взять выбранную ячейку как текст и сохранить ее в "var productName" как строку. Я пытался использовать функцию didSelectRowAt, но я не знаю, как это реализовать.

Вот мой код:

import UIKit

class ChooseProductViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var productName: String? = ""
var workModel: ActualValues?
var closureBlock2: (() -> Void)?
@IBOutlet weak var checkButton: UIButton!


let productList : [String] = ["Almond 20g",
                              "Almond 40g",
                              "Baharat Spice Mix 2g",
                              "Baharat Spice Mix 4g",
]

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return productList.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let myCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
    myCell.textLabel?.text = productList[indexPath.row]
return myCell
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}



@IBAction func checkButton(_ sender: UIButton) {
    workModel?.product = productName
    closureBlock2?()
    self.dismiss(animated: true, completion: nil)
}



func configureProduct(model: ActualValues) {
    workModel = model
}


}

Как я могу это исправить?

1 Ответ

1 голос
/ 26 марта 2020

Что-то вроде этого, вероятно, то, что вы хотите?

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    productName = productList[indexPath.row]
}

И убедитесь, что вы установили источник данных и делегат, и что табличное представление допускает выбор:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.allowsSelection = true
    tableView.dataSource = self
    tableView.delegate = self
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...