问题描述
我想将动态数据从一个视图控制器传递给另一个。通常我会这样做,假设我有
//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