Swift не может вызвать метод протокола через делегата
У меня есть два класса. Один класс названViewController
а другой класс называетсяTabView
.
Моя цель - вызвать функциюchangeTab()
который находится внутри класса TabView из ViewController.
Почему-то у меня проблемы с этим, потому что каждый раз мой делегатnil
.
Вот мой код для ViewController:
protocol TabViewProtocol: class {
func changeTab()
}
class ViewController: NSViewController {
// delegate
weak var delegateCustom : TabViewProtocol?
override func viewDidLoad() {
print(delegateCustom) // outputs "nil"
}
buttonClickFunction() {
print(delegateCustom) // outputs "nil"
delegateCustom?.changeTab() // doesn't work
}
}
Вот мой код для TabView:
class TabView: NSTabViewController, TabViewProtocol {
let myVC = ViewController()
override func viewDidLoad() {
super.viewDidLoad()
myVC.delegateCustom = self
}
func changeTab() {
print("test succeed")
}
}
Может кто-нибудь объяснить мне, что я делаю не так? - Я новичок в делегатах и протоколы ...