将UITableViewController子类化为在Swift中再次进行子类化

时间:2018-05-13 23:27:41

标签: swift uitableview controller subclass

我想要创建一个UITableViewController的子类,其中包含一些特定的功能。这样,当我在故事板中创建一个TableViewController时,我可以将这个新类子类化为子类。

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

这是我的UITableViewController的子类:

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

}

正如您所看到的,我尝试在override添加viewDidLoad(),但即便如此,也会说明这一点:

  

Method不会覆盖其超类中的任何方法。

我认为当你继承某些东西时,所有它的功能都被引入......或者是否需要添加额外的代码才能实现这一点。我很喜欢这样的子类化。

1 个答案:

答案 0 :(得分:1)

我的猜测是你没有在此文件中导入UIKit。但是,您可以直接从界面创建类UITableViewController的子类,

enter image description here

这将处理import的{​​{1}}。此外,它还将添加所有必要的方法,以UIKit开头。