0

如果您不调用superUIViewController 的视图事件(viewWillAppear、viewDidAppear 等)的实现会发生什么?

似乎我以前忘记了这样做,而且我不清楚是否有任何不利影响。

4

2 回答 2

1

如果您从任何地方继承了 UIViewController 委托(并且在制作自定义视图控制器时,您总是至少将 UIViewController 子类化一次),那么您派生的子类中的任何委托方法都不会被调用。

于 2013-04-28T21:58:51.413 回答
1

如果您将自己的视图控制器类中的一个子类化,您肯定会想要调用super任何这些类型的方法,否则您自己的基类的方法将不会被调用。

还有一个问题是您的顶级视图控制器类是否需要调用super以运行基UIViewController类本身中的代码。在UIViewController 参考中,似乎super记录了某些方法的调用要求,其中包括viewWillAppear:viewDidAppearviewWillDisappear:viewDidDisappear

如果您覆盖此方法,则必须super在您的实现中的某个时间点调用。

但是,没有迹象表明如果您不这样做会发生什么。

显然,在基本 iOS 框架视图控制器类中的这些方法中实现了一些东西。或者至少,Apple 保留了在这些方法中实现某些东西的选项。您可以说它们是虚拟方法而不是抽象方法。

于 2013-04-28T22:13:38.890 回答