Swift:如何在模型形式 segue 中将数据保存到 var?

问题描述 投票:0回答:0

我有: 带有 GameBrain 类的模型,在 TableViewController 中打开的 ViewController。

在 TableViewController 中,我需要将 GameBrain 中的 var 编辑为 0。 当我使用 gameBrain.myVar = 0 更改它的值并按预期从 TableViewController 打印它的值 0 时,但是当我回到 ViewController 时它没有变化。

我尝试使用委托(下面的代码)更改它的值,但它甚至不打印“IT WORKS!”只是为了让我知道它朝着正确的方向前进。

我做错了什么?为什么函数 resetPlayerScore() 没有被调用?

表视图控制器:

protocol MenuTableViewControllerDelegate: AnyObject {
    func resetPlayerScore()
}

class MenuTableViewController: UITableViewController {
    
    weak var delegate: MenuTableViewControllerDelegate?
    private let gameBrain = GameBrain()
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        
        switch indexPath.row {
        case 0:
            resetPlayerScore()
        default:
            break
        }
    }
}

型号:

extension GameBrain: MenuTableViewControllerDelegate {
    func resetPlayerScore() {
        print("IT WORKS!")
    }
swift uikit delegates segue
© www.soinside.com 2019 - 2024. All rights reserved.