当包含的 UIViewController viewWillDisappear 被调用时,子视图 UIView 会得到任何回调吗

Will subview UIView get any callback when the containing UIViewController viewWillDisappear gets called

我有一个自定义控件,我已将其添加到 UIViewController 视图中,其中有一个计时器,我的要求是在 ViewController 消失时停止计时器(即让我们说new ViewController 被压入堆栈)。现在我正在自定义控件上手动调用一个函数来停止 ViewController 的 viewWillDisappear 中的计时器,我想在自定义控件内处理它,因为它在多个地方使用,我可能会在类似table 以后也可以查看。

欢迎提出任何建议。

子视图控制器的生命周期方法会被调用,所以你可以在子视图控制器的viewWillDisappear(_ animated: Bool)中停止时间。

对于您的情况,也许是时候将控件从 UIView 升级到 UIViewController。您无需更改 UIView 实现,只需添加一个控制器包装器即可。

有一个容器视图,它可以作为控件(对于 UIView),但所有逻辑最好移动到容器视图后面的 UIViewController,包括定时器。

当父级 ViewController 被关闭时,您的控制器的 viewDidDisappear 也可以自动调用。这是我现在能得到的最好方法。希望您对此解决方法感到满意。

可以。 1) 创建将为您 class 存储 link 的单例。并调用他的方法。 2) 您可以为这个 class 为您下一个 vc 创建委托。并调用他的方法。 3) 您可以从堆栈导航控制器中获取 vc。并调用方法。