【发布时间】:2017-01-30 00:27:20
【问题描述】:
试图在视图控制器之间传递一个数组。我不知道为什么很确定数组中有东西,但当它到达另一边时,它似乎是空的。没有错误...只是空的。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segueMapSelection" {
if let destinaton = segue.destination as? MapTableChoiceViewController {
//destinaton.maps = sender as? [SkiMap]
print("size of array before passing it through: ", maps.count)
destinaton.maps = self.maps
}
}
}
@IBAction func SelectDifferentMapButton(_ sender: Any, forEvent event: UIEvent) {
performSegue(withIdentifier: "segueMapSelection", sender: self.maps)
}
在接收 ViewController 时,我有一个
var maps : [ObjectTypeHere]! = []
知道我在这里做什么吗?我已经将代码注释掉了我尝试过的另一种方式。当我尝试它时它给出了一个错误。
感谢您的帮助。
【问题讨论】:
-
var 映射:[ObjectTypeHere]!只有这个在你的第二个视图控制器中
-
好的...所以我这样做了,它可能向我展示了问题。它现在说:致命错误:在展开可选值时意外发现 nil
-
好的,数组有相同的类型吗?你的第二个视图控制器数组是 ObjectTypeHere 也许你是为这个例子做的,但我还是问
-
将此 segue.destination 更改为? MapTableChoiceViewController 到这个:segue.destination 为! MapTableChoiceViewController 我觉得有问题
-
或者干脆做: (segue.destination as!MapTableChoiceViewController).maps = self.maps 只检查转场名称后的那一行