所以我试图从名为configNames
的前一个视图控制器传递数组来填充我的表视图控制器(基本上是记分板)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destVC: scoreboard = segue.destination as! scoreboard
destVC.namesTArray = nameArray
destVC.scoresTArray = scoreArray
}
namesTArray
/ scoresTarray
是在tableview(scoreboard
)中创建的数组,并创建了nameArray
/ scoreArray
,并在视图中添加了值控制器。
我尝试通过segues传递数组,但是,当我尝试从要显示的变量调用数据时,数组中的值没有传递并导致崩溃。
感谢您的帮助。
答案 0 :(得分:0)
您应该将segue从一个控制器提供给另一个控制器。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "SegueName" {
let detailVC = segue.destination as! scoreboard
destVC.namesTArray = nameArray
destVC.scoresTArray = scoreArray
}
}
答案 1 :(得分:0)
以这种方式尝试
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destVC = segue.destination as? scoreboard {
destVC.namesTArray = nameArray
destVC.scoresTArray = scoreArray
}
}
现在你没有强行解开变量
tableview会在viewDidLoad
之后自动重新加载,因此tableview应该在没有任何其他工作的情况下填充。
如果您遇到任何崩溃,最好提供行号,如果可能的话也可以堆栈跟踪,那么解决问题会更容易。
并将scoreboard
更改为ScoreBoard
。这种命名约定称为套管。
根据您在评论中提供的崩溃'Fatal Error: Index out of range'
的说明,如果您认为自己在numberOfRowInSection
中传递了错误的数字。
确保nameArray
和scoreArray
具有相同的计数,并且nameArray.count
放在numberOfRowInSection
中。