Swift 3:如何确保在下一个视图控制器中呈现之前设置数据



我正在使用 prepare for segue 在另一个视图控制器中设置字典变量。但问题是视图控制器在没有数据的情况下打开地图。如何确保仅在设置字典变量数据后转到下一个视图控制器。

这是我的代码

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showMapSegue"
{
if let mapVC = segue.destination as? MapVC
{
if vendorStoreKeys.count != 0{
mapVC.vendorStore = vendorStoreKeys
}
}
}
}

但是,当控制器可见时,下一个视图控制器中的供应商存储数组仍然是空的。它会在一段时间后设置数据,但此时我无法重新加载该视图控制器,因此我需要确保在正确设置 mapVC.vendorStore变量之前不会转到下一个视图控制器。

我能够解决这个问题。准备应该在调用之前设置数据,它是。问题是我实际上忘记删除故事板中的 segue,它直接从按钮转到新的视图控制器。所以这就是我所做的

  1. 删除了直接从集合视图单元格按钮转到下一个故事板的 segue
  2. 创建了一个从视图控制器顶部到下一个视图控制器的新 segue
  3. 将该续集命名为"showMapSegue">

构建并运行。我在下一个视图控制器中成功获取了数据。希望对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新