我知道同样的问题被问了很多次。我阅读了堆栈溢出的大部分答案,并尝试过。但它没有帮助我的问题。斯威夫特代表功能不叫
我有两个视图控制器
protocol UpdateDataDelegate {
func loadData()
}
viewcontroller2 {
var delegate: UpdateDataDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
fun saveData() {
self.delegate?.loadData()
}
}
viewcontroller1 : UpdateDataDelegate {
var vc2 = viewcontroller2()
override func viewDidLoad() {
super.viewDidLoad()
vc2.delegate = self
}
func loadData() {
}
}
但从viewcontroller1功能loadData()不被调用。
您正在创建新的实例wth var vc2 = viewcontroller2(),这就是为什么它没有调用。你可以检查在viewcontroller2上使用print self并打印vc2变量 –
你需要粘贴更多的代码。这段代码太抽象了,不可能找出问题所在。例如,你永远不会调用'saveData',所以难怪委托函数没有被调用。如果出现语法错误,它甚至不会编译。 –
我想用viewcontroller2中的新数据集更新我的viewcontroller1。所以我打电话给代表。 – swiftuser123