连接两个相关的TableViewController数组

时间:2017-07-02 18:49:47

标签: ios arrays swift uitableview

我知道标题有点模棱两可,所以让我解释一下。我有两个TableViewControllers,名为MainTableViewControllerDetailTableViewController。此外,我创建了多个数组,在想法中通过层次结构连接:

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中的选择。任何帮助将不胜感激,并提前感谢您。

1 个答案:

答案 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]
            }
        }
    }
}