【问题标题】:How to detect a UIViewController finish loading?如何检测 UIViewController 完成加载?
【发布时间】:2014-11-05 17:01:22
【问题描述】:

我正在做一个应用程序,每次 UIViewController 完成加载时,都会有一个线程对当前可见的 ViewController 进行屏幕截图。 我有 40 多个 ViewController。 如何检测 ViewContrller 完成加载。 我不想为每个“ViewDidLoad”添加该功能。 谢谢。

【问题讨论】:

  • 为什么需要将它添加到每个 –viewDidLoad 方法中?你没听说过继承吗?
  • 如果我使用继承,父类完成加载并不意味着子类完成加载。该函数在父亲完成加载后截屏,它不会等待孩子完成加载。

标签: ios viewdidload


【解决方案1】:

最明显和可维护的方法是创建您自己的 UIViewController 子类,在 ViewDidLoad 中执行此操作,然后将您的所有视图控制器更改为这个新子类的实例。

【讨论】:

  • 但是超类加载完成并不代表子类加载完成。
  • 我想你可能误解了子类的工作原理。 viewDidLoad 事件一次只发生一次。如果您的视图控制器之一没有覆盖 viewDidLoad,则超类实现运行。如果它确实覆盖了 viewDidLoad,第一行应该(几乎总是)说[super viewDidLoad]; 在执行任何特定于子类的行为之前运行超类实现。如果您忽略了对超类的调用,最近的 XCode 分析器甚至会警告您。
猜你喜欢
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多