UIPageViewController直接跳转到页面会导致实例变量出现问题

问题描述

我对Swift还是比较陌生,他已经用JavaScript编写了很多代码,因此我在这里肯定会遗漏一些细微的东西。我有一个控制3个页面的UIPageViewController,并且每个页面都有一个由父UIPageViewController设置的特定实例变量。我们将该实例变量称为currentState。我还有一个功能,允许用户直接跳到任何页面。但是,由于某种原因,当用户直接跳转到该页面时,调用currentState时似乎未设置实例变量viewDidAppear,即使在页面代码的其他部分中也检测到了该变量。

这是跳转到页面并传递状态的代码:

func goToPage(index: Int)
    {
        if index < viewControllers!.count
        {
            let destViewController = viewControllers![index]
            (destViewController as! WorkflowController).currentState = DataStore.sharedStore.state
            setViewControllers([destViewController],direction: .forward,animated: true,completion: nil)
        }
    }

在目标页面的viewDidAppear中,测试代码指示未设置状态,即使当用户滚动浏览页面而不跳转时也已正确设置了状态:

override func viewDidAppear(_ animated: Bool)
{
        if let state = currentState
        {
            // Happens when user scrolls page by page until this one
            print("State variable loaded")
        }
        else
        {
            // Happens when user jumps to page
            print("State variable did NOT load")
        

        }
}

设置中我缺少什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)