问题描述
我对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 (将#修改为@)