Swift 3如何向同一个第二个View控制器单元

时间:2016-12-12 16:00:39

标签: arrays uitableview swift3 ios10 didselectrowatindexpath

我是一位全新的iOS程序员,尝试使用Swift3做第一个应用程序。它就像不同的Zones Area数据共享函数。有一个问题希望可以帮助,非常感谢它!!

我在每个视图中都有两个ViewController和一个单元格。 带有A单元格的ViewController B ViewController与B细胞

在A视图中我有一个Array例如:

var USA = [String]()

USA = ["NY", "NJ", "CF", "LA", "WD"]

如果

NY = ["zone one", "zone two", "zone three", "zone 4", "zone 5"]
NJ = ["eastZone", "southZone", "northZone", "westZone"]
CF = ["midtown", "downtown", "uptown", "county"]
LA = ["firstZone", "SndZone", "ThreeZone", "fourZone", "fiveZone"]
WD = ["eastPart", "westPart", "downPart", "upPart", "countyPart"]

所以在A视图中我可以通过以下方式显示单元格:

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
     return USA.count
}

总共有5行

然后使用此func选择您想要的行

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 

问题是如何显示

["firstZone", "SndZone", "ThreeZone", "fourZone", "fiveZone"] in B View cell, if I selected A View's row "LA"

选择了LA之后,B视图可以显示5行:

["firstZone", "SndZone", "ThreeZone", "fourZone", "fiveZone"]

如果我选择NY,它可以在B视图中显示纽约的数组数据,这就是我需要的东西〜

当我选择两个ViewController之间的不同行时,我想显示不同的单元数据是否可以通过任何智能方式?或者我需要更多ViewController或班级?请帮帮我!!非常感谢〜

1 个答案:

答案 0 :(得分:0)

将数据设置为对象数组,其中每个对象都包含一个子数组。

e.g:

class Location {
    var name: String
    var sections: [String]

    init(_ key: String, sections: [String]) {
        name = key
        self.sections = sections
    }
}

let USA = [Location("NY", sections: ["zone one", "zone two", "zone three", "zone 4", "zone 5"]),
       Location("NJ", sections: ["eastZone", "southZone", "northZone", "westZone"]),
       Location("CF", sections: ["midtown", "downtown", "uptown", "county"]),
       Location("LA", sections: ["firstZone", "SndZone", "ThreeZone", "fourZone", "fiveZone"]),
       Location("WD", sections: ["eastPart", "westPart", "downPart", "upPart", "countyPart"])]

对于A控制器,单元格显示Location.name处对象的IndexPath.row。对于B控制器,传递选定的Location对象,并使用Location.sections计数和单元格的项目。