我有: 带有 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!")
}