在 Swift 中再次对 UITableViewController 进行子类化

Subclassing UITableViewController to be subclassed again in Swift

我想制作一个 UITableViewController 的子class,其中有一些特定的功能。这样,当我在情节提要中制作 TableViewController 时,我可以直接 class 我制作的这个新 class。

但是当我尝试用我的新 class 替换 UITableViewController 时,我得到关于没有 viewDidLoad() 函数或任何其他生命周期函数的错误。

这是我 UITableViewController 的子class:

class TutorialTVC: UITableViewController {

var tutorialTab: TutorialTab?

override func viewDidLoad() {
    super.viewDidLoad()
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    self.tutorialTab?.dropDownTab()
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    self.tutorialTab?.pullUpTab(0.2)
}

func createTutorialTab(segueNameOnOpen: String) {
    self.tutorialTab = TutorialTab(sourceVC: self, putTabBelowView: nil, segueNameOnOpen: segueNameOnOpen)
}

}

如您所见,我尝试为 viewDidLoad() 添加 override,但即便如此,它还是这样声明的:

Method does not override any method from its superclass.

我认为当您子class 某些东西时,它的所有功能也会被引入...或者是否需要添加额外的代码来实现这一点。我对像这样子 classing 很陌生。

我猜你没有在这个文件中导入 UIKit。但是,您可以直接从如下界面创建 class 作为 UITableViewController 的子类,

这将处理 UIKit 中的 import。它还将添加以 TableViewController.

开头的所有基本方法