首页 > 解决方案 > 快速将数据传递给变量

问题描述

我想将按钮标签分配给变量。然后我尝试将此数据发送到 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)

你能告诉我我该怎么做吗?

标签: swift

解决方案


您需要先分配它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
    }
}

推荐阅读