繁体   English   中英

调用superview的viewwillappear是什么意思?

[英]What is meaning of calling superview's viewwillappear?

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

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

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

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

参考文献明确指出

在接收器的视图即将在屏幕上显示之前以及在配置任何动画以显示视图之前调用此方法。 您可以覆盖此方法以执行与显示视图相关联的自定义任务。 例如,您可以使用此方法更改状态栏的方向或样式,以与所显示视图的方向或样式进行协调。 如果重写此方法,则必须在实现中的某个时刻调用super。

Apple的viewWillAppear文档:只是说:

如果重写此方法,则必须在实现中的某个时刻调用super。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM