override func viewDidLoad() {
super.viewDidLoad()
print(" viewDidLoad")
// Do any additional setup after loading the view, typically from a nib.
}
如果上面的函数中的super.viewDidLoad()有任何问题
答案 0 :(得分:0)
是的,它剥夺了super
在viewDidLoad()
中做任何事情的机会。
如果super
不做任何事情(如果直接子类化UIViewController
可能就是这种情况),那么您可能看不到任何立即差异。但是,例如,如果要对刚编写的类进行子类化,而不调用super
,则不会调用您的打印件。
查看更多:Do I always have to call [super viewDidLoad] in the -viewDidLoad method?
答案 1 :(得分:0)
对于从UIViewController
继承的VC,不调用super.viewDidLoad
没什么区别。
但是,如果您有一个继承自某个类的VC,而该类实际上在其viewDidLoad
中执行了某些操作,则 会有所不同。
我曾经做过一个棋盘游戏,我有一个GameViewController
,该屏幕显示了两人游戏的游戏画面。 GameViewController.viewDidLoad
对游戏面板视图和游戏模型进行了一些设置。有一天,我决定为游戏编写一个AI,这样人们即使一个人也可以玩。带有AI的游戏与两人游戏略有不同,因此我制作了AIGameViewController
,它继承了GameViewController
。
在AIGameViewController
中,我必须呼叫super.viewDidLoad
,否则我必须将代码复制并粘贴到GameViewController.viewDidLoad
中。
有一个名为“ Eureka”的库,可让您创建供用户填写的表单。要使用该库,请创建一个继承自FormViewController
的新VC,然后可以开始向其中添加行viewDidLoad
中的表格。必须在这里调用super.viewDidLoad
,因为FormViewController
将建立一个表格视图来显示该表单。没有表格视图,您的表单将不会显示。