O controlador de visão infantil UIPageViewController tem ciclo de vida errado

Aug 18 2020

Quando eu fechar para UiPageVC, após a chamada viewWillDisappear do UiPageVC, as funções viewWillAppear e viewDidAppear do ChildVC chamam. No final, o viewDidDisappear do UiPageVC funciona.

Eu preciso trabalhar o ChildVC normalmente. Quando eu dispenso para UiPageVC, viewWillDisappear e viewDidDisappear de ChildVC devem chamar.

Respostas

1 SauvikDolui Aug 18 2020 at 00:45

De acordo com esta resposta , viewWillDisappear(_:)& viewDidDisappear(_:)pode não ser chamado no controlador de visualização filho.

Seguindo o Doc da Apple , substitua viewWillDisappear(_:)e viewDidDisappear(_:)na UIPageViewControllersubclasse.

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