首页 > 解决方案 > UIPageViewController 的子视图控制器的生命周期错误

问题描述

当我靠近 UiPageVC 时,在 UiPageVC 的 viewWillDisappear 调用之后, ChildVC 的 viewWillAppear 和 viewDidAppear 函数调用。最后,UiPageVC 的 viewDidDisappear 起作用了。

我需要像正常方式一样工作 ChildVC。当我解雇 UiPageVC 时, ChildVC 的 viewWillDisappear 和 viewDidDisappear 应该调用。

标签: iosswiftuipageviewcontrollerlifecyclechildviewcontroller

解决方案


根据这个答案viewWillDisappear(_:)&viewDidDisappear(_:)可能不会在子视图控制器中被调用。

Apple 的 Doc之后,在子类中覆盖viewWillDisappear(_:)& 。viewDidDisappear(_:)UIPageViewController

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillAppear(animated)
        children.forEach { $0.beginAppearanceTransition(false, animated: true) }
    }
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        children.forEach { $0.endAppearanceTransition() }
    }

推荐阅读