如何将数据源传递给第二个View Controller?迅速

时间:2017-01-10 20:54:04

标签: ios swift data-structures model

所以我有一个dataModel,它使用我的数据源类从plist中提取数组。在我的视图控制器中,我用

调用数据源类
let dataSource = DataSource()

然后我用

从数组中获取值
abilities = dataSource.ability[monster.ability! + 2]

我的问题是,当我从第二个Datasource抓取Viewcontroller时,在segue过渡期间会有2-4秒的延迟。如何在第二个viewcontroller上传递数据源,这样我就可以读取值,而无需从第二个视图控制器中调用let dataSource = DataSource()

1 个答案:

答案 0 :(得分:1)

有几种不同的方法可以处理从一个视图控制器到另一个视图控制器的传递信息。

但是对于您的场景,我建议您在第二个视图控制器中创建一个数组属性来保存您的数据源,但只能通过调用prepare(for segue: UIStoryboardSegue, sender: Any?)方法从第一个视图控制器传递它。

以下是我将简单数据传递给另一个视图控制器的示例,几乎是Master-Detail设置:

    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
    }
}