gpt4 book ai didi

ios - 在 Swift 中更新来自另一个类的对象的实例变量

转载 作者:行者123 更新时间:2023-11-28 10:54:28 24 4
gpt4 key购买 nike

有两个 UIViewController 类。其中之一是 UITableViewController,它会在 needUpdating 变量为真时重新加载其数据。
这个变量应该在另一个类中更新。

我从它创建了一个实例并更改了这个变量,但我认为因为这个实例不是正在运行的实例,所以没有任何变化,所以 needUpdating 没有更新。

class A: UITableViewController{
var needUpdating: Bool = false
override func viewWillAppear(animated: Bool) {
...
if needUpdating {
tableView.reloadData()
}
}
}
class B: UIViewController {
override func viewWillAppear(animated: Bool) {
...
var a = A()
if ... {
a.needUpdating = true
}
}
}

这两个 UIViewController 是不相关的。它们未使用 segue

连接

最佳答案

这是第一个 View Controller :

class ViewController: UIViewController, ViewControllerSecondDelegate {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Next" {
let vc = segue.destination as? ViewControllerSecond
vc?.delegate = self
}
}
func secondDelegate(_ value: Bool) {
print("delegate") //needUpdating = value
}
}

这是第二个ViewController:

protocol ViewControllerSecondDelegate {
func secondDelegate(_ value: Bool)
}

class ViewControllerSecond: UIViewController {
weak var delegate: ViewControllerSecondDelegate?

override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
delegate?.secondDelegate(true) //call this wherever you need it.
}
}

关于ios - 在 Swift 中更新来自另一个类的对象的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44512989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com