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")
    }
}

Может кто-нибудь объяснить мне, что я делаю не так? - Я новичок в делегатах и ​​протоколы ...

Ответы на вопрос(2)

Ваш ответ на вопрос