Ios 如何将数据源传递给第二个视图控制器?敏捷的
所以我有一个数据模型,它使用我的datasource类从plist中提取数组。在我的视图控制器中,我使用Ios 如何将数据源传递给第二个视图控制器?敏捷的,ios,swift,data-structures,model,Ios,Swift,Data Structures,Model,所以我有一个数据模型,它使用我的datasource类从plist中提取数组。在我的视图控制器中,我使用 let dataSource = DataSource() 然后我用 abilities = dataSource.ability[monster.ability! + 2] 我的问题是,当我从第二个Viewcontroller抓取Datasource时,在segue转换期间有2-4秒的延迟。如何在第二个视图控制器上传递数据源,这样我就可以读取值,而不必从第二个视图控制器中调用let d
let dataSource = DataSource()
然后我用
abilities = dataSource.ability[monster.ability! + 2]
我的问题是,当我从第二个
Viewcontroller
抓取Datasource
时,在segue转换期间有2-4秒的延迟。如何在第二个视图控制器上传递数据源,这样我就可以读取值,而不必从第二个视图控制器中调用let datasource=datasource()
但是,对于您的场景,我建议在第二个视图控制器中创建一个数组属性,该属性将保存您的数据源,但只能通过调用prepare(对于segue:UIStoryboardSegue,sender:Any?
方法从第一个视图控制器传递它
下面是我如何将简单数据传递给另一个视图控制器的示例,该视图控制器基本上是一个主细节设置:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationViewController = segue.destination as? DetailNoteViewController
if segue.identifier == "toNoteDetailView" {
guard let indexPath = tableView.indexPathForSelectedRow else { return }
let note = self.notes[indexPath.row]
destinationViewController?.note = note
}
}
所以我试过你说的。听起来不错,但我遇到了一个问题。我无法在序列中使用标识符[indexath.Row]
。我是否应该将if语句移动到didSelectItemAt
?您可能需要使用代码片段编辑答案。.[indexPath.row]用于获取对象在与tableView相对应的数组中的位置,以便它可以将对象传递给第二个视图控制器