我知道标题有点模棱两可,所以让我解释一下。我有两个TableViewControllers,名为MainTableViewController
和DetailTableViewController
。此外,我创建了多个数组,在想法中通过层次结构连接:
let maincCarChoice = ["Toyota", "Nissan", "Ford"]
let toyotaCarChoice = ["Prius", "Camry", "Etios"]
let nissanCarChoice = ["Altima", "Maxima", "Rogue"]
let fordCarChoice = ["Fusion", "Focus", "Explorer"]
我已设法使用MainTableViewController
数组填充mainCarChoice
并实施segue
,当触摸三个选项中的一个时,会转到DetailTableViewController
。尽管如此,我不确定如何使用相应的数组填充DetailTableViewController
,具体取决于用户在MainTableViewController
中的选择。任何帮助将不胜感激,并提前感谢您。
答案 0 :(得分:2)
实现这一目标的一种方法是将一个字符串成员数组添加到DetailTableViewController
,如下所示:
var vehiclesArray: [String]?
此数组应作为DetailTableViewController
内的表格视图的数据源。
现在,在MainTableViewController
内:
首先,添加一个载有汽车品牌和型号的字典:
var vehiclesDictionary = ["Toyota" : ["Prius", "Camry", "Etios"],
"Nissan" : ["Altima", "Maxima", "Rogue"],
"Ford" : ["Fusion", "Focus", "Explorer"]]
然后覆盖prepare
方法,如下所示:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "YourIdentifier" {
if let indexPath = self.tableView.indexPathForSelectedRow {
let selectedVehicle = vehicles[indexPath.row]
if let nextScene = segue.destination as? DetailTableViewScene {
nextScene.vehiclesArray = self.vehiclesDictionary[selectedVehicle]
}
}
}
}