在这段代码中,我从.xib加载一个View Controller(和相关的View):
-(id)initWithCoder:(NSCoder *)coder
{
// add custom initialisation code here
[super initWithCoder:coder];
return self;
}
这成功了,但我真的不明白[super initWithCoder:coder]行正在完成什么。我的View初始化后是否初始化我的View Controller?
解释时请尽可能明确。感谢。
答案 0 :(得分:3)
您的班级是UIViewController
的子类。该调用告诉您的超类(UIViewController
)执行它需要完成的步骤,以便您可以执行初始化步骤。这将设置UIViewController
提供的任何属性,或注册UIViewController
需要执行其工作的通知。
除了你需要采取的步骤之外,几乎每次你都从超类中重写一个方法来调用超类的方法。
编辑:此外,如果您不需要在超类提供的方法中执行任何操作,您可以将其保留,并且将使用超类的方法。在这种情况下,我不会提供initWithCoder:
方法,除非您需要执行一些代码以及您展示的内容。