Передать данные из UITableViewCell в ViewController - PullRequest
0 голосов
/ 27 мая 2018

У меня есть класс, который расширяется от UITableViewCell, который имеет глобальную переменную.Я хочу получить доступ к этой переменной (selectedMaterialId) в другом ViewController.PrepareForSegue просто работает для ViewController.Как я могу это сделать?

Мой класс ячеек:

class MaterialsTableViewCell: UITableViewCell {

@IBOutlet weak var cellView: UIView!
@IBOutlet weak var materialCodeLbl: UILabel!
@IBOutlet weak var materialDescLbl: UILabel!
@IBOutlet weak var greenBtnOutlet: UIButton!
@IBOutlet weak var redBtnOutlet: UIButton!
@IBOutlet weak var yellowBtnOutlet: UIButton!

public var selectedMaterialId = 0
@IBAction func redBtnAction(_ sender: UIButton) {
    selectedMaterialId = sender.tag

    }
}

Я хочу получить доступ к selectedMaterialId в другом VC

Ответы [ 3 ]

0 голосов
/ 27 мая 2018

Предполагая, что вам нужно выдвинуть контроллер представления после запуска перехода из ячейки табличного представления, просто подготовьте переход от контроллера, владеющего представлением таблицы, как показано ниже.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {


    if 
        let senderCell = sender as? MaterialsTableViewCell,
        let yourController = segue.destination as? YourControllerClass {

        yourController.selectedMaterialId = senderCell.selectedMaterialId

    }



}
0 голосов
/ 27 мая 2018

Вы можете вызвать эту функцию в Tableview

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    variables.name = variables.nameArray[indexPath.row]

    let vc = self.storyboard?.instantiateViewController(withIdentifier: "nameofcontroller")
    self.present(vc!, animated: true, completion: nil)
}

Показать раскадровку , В новом ViewController

вы можете создать общедоступную переменную, которую вы можете использовать в целом.

class variables
{
    static var name: String = ""
}

Итак, в новом контроллере вызовите это здесь:

print("\(variables.name)")
0 голосов
/ 27 мая 2018

Если я не ошибаюсь, вы хотите использовать переменную selectedMaterialId из пользовательской ячейки табличного представления (MaterialsTableViewCell).Вкратце, вы хотите передать данные из одного класса в другой.Вы можете использовать концепцию делегатов для передачи значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...