如果您不调用super
UIViewController 的视图事件(viewWillAppear、viewDidAppear 等)的实现会发生什么?
似乎我以前忘记了这样做,而且我不清楚是否有任何不利影响。
如果您不调用super
UIViewController 的视图事件(viewWillAppear、viewDidAppear 等)的实现会发生什么?
似乎我以前忘记了这样做,而且我不清楚是否有任何不利影响。
如果您从任何地方继承了 UIViewController 委托(并且在制作自定义视图控制器时,您总是至少将 UIViewController 子类化一次),那么您派生的子类中的任何委托方法都不会被调用。
如果您将自己的视图控制器类中的一个子类化,您肯定会想要调用super
任何这些类型的方法,否则您自己的基类的方法将不会被调用。
还有一个问题是您的顶级视图控制器类是否需要调用super
以运行基UIViewController
类本身中的代码。在UIViewController 参考中,似乎super
记录了某些方法的调用要求,其中包括viewWillAppear:
、viewDidAppear
、viewWillDisappear:
和viewDidDisappear
:
如果您覆盖此方法,则必须
super
在您的实现中的某个时间点调用。
但是,没有迹象表明如果您不这样做会发生什么。
显然,在基本 iOS 框架视图控制器类中的这些方法中实现了一些东西。或者至少,Apple 保留了在这些方法中实现某些东西的选项。您可以说它们是虚拟方法而不是抽象方法。