没有呈现的ViewController的InitData?

时间:2017-11-08 13:57:01

标签: ios swift firebase

对于我不想立即呈现的两个视图控制器,我想initData

Atm我有一个用户点击tableViewCell(选择一个组)时,他们会看到“chatVC”,并显示相应的数据。在ChatVC中,用户可以访问另外两个VC,ChatInfoVCChatInfoSettingsVC。有没有办法将tableViewCell(我提供ChatVC时的组)中的正确信息传递给另一个VC?我从Firebase中提取所有数据。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
   guard let chatVC = storyboard?.instantiateViewController(withIdentifier: "chat") as? ChatVC else { return }
    chatVC.initData(forGroup: groupsArray[indexPath.row])
    presentDetail(chatVC)
}

我感谢所有人的帮助。

3 个答案:

答案 0 :(得分:0)

选项

答:将您的VC存储在类属性中,在将其显示在didselectRow之前进行分配。

B:创建一个类属性来存储所选索引路径的索引路径。你的VC数据在groupsArray中,你只需要索引路径来获取它。然后获取数据,init控制器,将数据分配给它。

答案 1 :(得分:0)

通常,您的['586.732'], ['626.012'], ['496.778'] ['597.422'], ['536.778'], ['586.056'] ['597.422'], ['536.778'], ['586.056'] 会将数据提供给它所呈现的viewcontrollers。因此,您必须

  • 将当前viewcontroller中的数据传递给with open("output.csv", "w") as csvfile: writer = csv.writer(csvfile) writer.writerows([x, y, z]) ,然后再将其传递给下两个viewcontrollers,或
  • 在呈现其他两个viewcontrollers之前获取ChatVC中的详细数据

您还可以在ChatVC中对这两个viewcontrollers进行实例化,为它们配置正确的数据,然后将这些 viewcontrollers 存储在ChatVC的两个属性中 - 但是这样在某种程度上我似乎奇怪

答案 2 :(得分:0)

如果我没有误解你,你可以将数据存储到ChatVc(在ChatVc中声明商店属性),当你准备好呈现其他两个ViewControllers时,你可以轻松访问数据。