UIPageViewControllerの子ViewControllerのライフサイクルが間違っています

Aug 18 2020

UiPageVCを閉じると、UiPageVCのviewWillDisappear呼び出しの後、ChildVCのviewWillAppear関数とviewDidAppear関数が呼び出されます。最後に、UiPageVCのviewDidDisappearが機能します。

通常の方法でChildVCを操作する必要があります。UiPageVCを閉じると、ChildVCのviewWillDisappearとviewDidDisappearが呼び出されます。

回答

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() }
    }