Переопределенный метод вызывает оригинальный метод, объявленный в расширении (категории) в swift?

Мой код:

extension UIViewController {
    @IBAction func someFunc() {
        ...
    }
}

class CustomViewController: UIViewController {
    @IBAction override func someFunc() {
        ...
    }
}

Можно CustomViewController.someFunc() вызов UIViewController.someFunc()?

Есть похожие вопросы, но мой другой. ПРИМЕЧАНИЕ: оригинальный метод объявлен в расширении, а не в родительском классе!

1 ответ

Решение

Вам просто нужно позвонить super.someFunc(),

class CustomViewController: UIViewController {
    @IBAction override func someFunc() {
        // Call super method
        super.someFunc()
        // Do override specific stuff
        ...
    }
}

PS: знайте, что вы забыли наследовать от UIViewController в вашем примере.

Другие вопросы по тегам