Child View Controller ของ UIPageViewController มีวงจรชีวิตที่ไม่ถูกต้อง

Aug 18 2020

เมื่อฉันปิด UiPageVC หลังจากการเรียก viewWillDisappear ของ UiPageVC จะเรียกฟังก์ชัน viewWillAppear ของ ChildVC และ viewDidAppear ในตอนท้าย viewDidDisappear ของ UiPageVC ใช้งานได้

ฉันต้องทำงาน ChildVC เหมือนปกติ เมื่อฉันปิดไปที่ UiPageVC ควรเรียก viewWillDisappear และ viewDidDisappear ของ ChildVC

คำตอบ

1 SauvikDolui Aug 18 2020 at 00:45

ตามคำตอบนี้ , viewWillDisappear(_:)และviewDidDisappear(_:)อาจจะไม่ได้รับการเรียกในการควบคุมมุมมองของเด็ก

ทำตามเอกสารของ Appleแทนที่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() }
    }