我有一个应用程序,它是这样的:斯威夫特3,通过发送变量3屏幕
第一屏装载一个集合视图,所显示的物品都保存在一个CSV文件中。
你点击其中一个项目,它会加载一个新的屏幕,并从该项目的csv的细节。
我有一个csv解析工具,它可以根据csv文件中该行的id拉取正确的信息。
我的问题:在第二个屏幕后,我有第三个屏幕,它有一个Google Map视图,其中一个项目在csv文件中是lat和另一个lon。
我想通过基于ID的第三个屏幕经纬度和经度值,所以正确的值经过。
我对Swift非常陌生,我无法理解这一点。
1)我是否需要在第二个屏幕上再次解析CSV文件?
2)我是否准备Segue方法发送已解析的CSV文件中的详细信息?如果是有人可以帮助我的代码赛格瑞的准备请
编辑以incude代码:
第一个VC对Segue公司
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "TrackDetailVC" {
if let detailsVC = segue.destination as? TrackDetailVC {
if let tr = sender as? Tracks {
detailsVC.track = tr
}
}
}
第一个VC CSV解析代码准备
func parseTrackCSV() {
let path = Bundle.main.path(forResource: "tracks", ofType: "csv")!
do {
let csv = try CSV(contentsOfURL: path)
let rows = csv.rows
for row in rows {
let trackId = Int(row["id"]!)!
let name = row["name"]!
let postcode = row["postcode"]!
let trackType = row["type"]!
let locID = row["locID"]!
let lon = Double(row["long"]!)!
let lat = Double(row["lat"]!)!
let tr = Tracks(name: name, trackId: trackId, postcode: postcode, trackType: trackType, locId: locID, lon: lon, lat: lat)
track.append(tr)
}
} catch let err as NSError {
print(err.debugDescription)
}
}
所以使用这个我将如何在第二个VC上编写准备Segue代码以传递给第三个?
非常感谢
你用代表尝试传递数据吗? –
通过标准'prepare(for:,sender:)'segue方法将'latitude'和'longitude'传递到您的“第二个屏幕”,然后将'latitude'和'longitude'通过下一个segue传递给您的“第三屏“。如果您需要的不仅仅是一般性建议,还需要发布代码,说明您遇到的具体问题。 –
嗨,编辑包含来自第一个VC的代码,以显示它如何将数据从第一个屏幕带到第二个屏幕。我知道我需要通过相同的数据,但我无法在自己的头脑中找出如何。我最终需要纬度,经度和名字通过 –