我有一个从具有全局变量的UITableViewCell
扩展的类。我想在另一个ViewController中访问该变量(selectedMaterialId
)。
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
}
}
我想访问另一个VC中的selectedMaterialId
答案 0 :(得分:0)
如果我没弄错,你想使用自定义tableviewcell(MaterialsTableViewCell)中的selectedMaterialId变量。 Inshort,您希望将数据从一个类传递到另一个类。您可以使用委托概念来传递值
答案 1 :(得分:0)
假设您想要的是在从表格视图单元格触发segue之后推送视图控制器,只需从拥有如下所示的tableview的控制器准备segue。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if
let senderCell = sender as? MaterialsTableViewCell,
let yourController = segue.destination as? YourControllerClass {
yourController.selectedMaterialId = senderCell.selectedMaterialId
}
}
答案 2 :(得分:0)
你可以在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)
}
Show storyboard,进入新的ViewController
您可以创建一个可以整体使用的公共变量。
class variables
{
static var name: String = ""
}
所以在新的控制器中调用它:
print("\(variables.name)")