快速将数据传递到变量

时间:2019-11-14 19:41:17

标签: swift

我想将按钮标签分配给变量。然后,我尝试将此数据发送到SecondViewController并将其分配给var。

@IBAction func goToProducts(_ sender: UIButton) {

    performSegue(withIdentifier: TextStrings.ProfileAluVC.goToProducts, sender: self)
    categoryNumber = sender.tag }

将数据传递到ProductsViewController

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "goToProducts" {
        let destinationController = segue.destination as! ProductsViewController
        destinationController.categoryNumb = categoryNumber
    }
}

在ProductsViewController上,我创建了var,但没有此数据。我打印了这个变量,我得到了:

  

类别编号:373

     

categoryNumb:可选(24)

你能告诉我我怎么做吗?

1 个答案:

答案 0 :(得分:1)

您需要先在performSegue

之前分配它
categoryNumber = sender.tag  
performSegue(withIdentifier: TextStrings.ProfileAluVC.goToProducts, sender: self)

或使用sender

performSegue(withIdentifier: TextStrings.ProfileAluVC.goToProducts, sender: sender.tag)  

将数据传递到ProductsViewController

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "goToProducts" {
        let destinationController = segue.destination as! ProductsViewController
        destinationController.categoryNumb = sender as! Int
    }
}