调用superview的viewwillappear是什么意思?

时间:2011-04-12 08:40:27

标签: iphone objective-c cocoa-touch

-(void)viewwillAppear
{
[super viewwillAppear:animated];
}

调用[super viewwillAppear:animated]意味着什么,如果我们不调用它会发生什么?

3 个答案:

答案 0 :(得分:5)

使用super调用方法的基类版本。您会在initdeallocviewDidLoad等方法中看到类似的来电。原因是在基类的实现中可能会执行一些重要的事情,否则派生类将无法正常工作。在派生类中重写方法时,需要使用super调用基本版本。

使用super时不会调用基类方法的唯一情况是,当您知道不需要基类执行的任务时,换句话说,您完全重写。这不是viewWillAppear:animatedviewDidLoad等情况。所以我们在这些情况下总是称为超级。

答案 1 :(得分:2)

reference明确说明

  

此方法在调用之前调用   接收者的观点即将来临   显示在屏幕上和之前   动画配置为显示   风景。您可以覆盖此方法   执行关联的自定义任务   与呈现视图。例如,   您可以使用此方法进行更改   状态的方向或风格   栏与方向协调   或呈现的视图风格。   如果您覆盖此方法,则必须   在你的某个时刻打电话给超级   实施

答案 2 :(得分:2)

Apple的viewWillAppear文档:只是说:

  

如果覆盖此方法,则必须在实施中的某个时刻调用super。

如果你不打电话,它可能会导致一些意想不到的行为。请注意,“在某些时候”意味着您不必先调用它。