UIPageViewController' s Child View Controller has wrong lifecycle

622 Views Asked by At

When i close to UiPageVC, after UiPageVC's viewWillDisappear call, ChildVC's viewWillAppear and viewDidAppear function calls. At the end, UiPageVC's viewDidDisappear works.

I need to work ChildVC like normal way. When i dismiss to UiPageVC, viewWillDisappear and viewDidDisappear of ChildVC should call.

1

There are 1 best solutions below

0
Sauvik Dolui On

According to this answer, viewWillDisappear(_:) & viewDidDisappear(_:) might not get called in child view controller.

Following Apple's Doc, override viewWillDisappear(_:) & viewDidDisappear(_:) in UIPageViewController subclass.

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