Когда вы переопределяете переопределенный метод из суперкласса, вы убедитесь, что вы устанавливаете метод в подклассе с более высоким уровнем доступа, чем у суперкласса, от которого вы наследуете. Вы можете использовать ключевое слово open .
Пример:
class ViewController1: UIViewController {
override func restoreUserActivityState(_ activity:NSUserActivity) {
}
}
class ViewController2: ViewController1 {
open override func restoreUserActivityState(_ activity: NSUserActivity) {
}
}
Надеюсь, это решит вашу проблему.