将数据传递给viewController

问题描述

我想将动态数据从一个视图控制器传递给另一个。通常我会这样做,假设我有

//FirstVC
let dataArr = ["2,5","5,1"]
//In SecondVC declared this var
var array: [String]()
//From VC one I pass it like this
let vc = SecondVC()
vc.array = dataArr
self.navigationController?.pushViewController(vc,animated: true)

这没关系,我正在SecondVC中检索阵列。问题是,如果这些数组是动态的并且是多个数组,我该如何传递多个数据呢?例如

let dataArr = ["2,1"]
let dataArr = ["2","5"]
let dataArr = ["2,2","1,1"]

等等如何传递它们的想法?预先谢谢你

解决方法

您可以像这样存储一个整数或字符串数​​组...

字符串

let dataArray = [["2","5"],["5","1"]]

整数

let dataArray = [[2,5],[5,1]]

或者您可以创建一个名为twoInts的结构,并将其存储为twoInts类型的数组

代码看起来像这样

struct twoInts {
    var intOne: Int!
    var intTwo: Int?

    init(intOne: Int,intTwo: Int?) {
        self.intOne = intOne
        self.intTwo = intTwo
    }
 }

然后将其存储为twoInt数组

let dataArray = [twoInts(2,5),twoInts(5,1)]

然后分别访问它们

let firstNumber = dataArray[0].intOne // returns 2
let secondNumber = dataArray[0].intTwo! // return 5,intTwo is optional