Ios 在控制器之间传递变量-Swift4
我试图将一个变量传递给另一个视图控制器,然后再传递给另一个视图控制器Ios 在控制器之间传递变量-Swift4,ios,swift,tableview,segue,uistoryboardsegue,Ios,Swift,Tableview,Segue,Uistoryboardsegue,我试图将一个变量传递给另一个视图控制器,然后再传递给另一个视图控制器 var selectedPlace = Place { name = Daniel Webster Highway; country = United States; lat = 42.72073329999999; lon = -71.44301460000001; } 在单元格上选择时,我可以访问变量selectedPlace 我想把它传给我的PlaceDetailVC和MapVC 由
var selectedPlace = Place {
name = Daniel Webster Highway;
country = United States;
lat = 42.72073329999999;
lon = -71.44301460000001;
}
在单元格上选择时,我可以访问变量selectedPlace
我想把它传给我的PlaceDetailVC和MapVC
由于某些原因,我无法做到这一点
PlacesVC
PlaceDetailVC
我也尝试
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationVC = segue.destination as! MapVC
if let indexPath = placesTable.indexPathForSelectedRow {
destinationVC.selectedPlace = selectedPlace
}
}
MapVC
print(selectedPlace),如果导航按钮调用segue“toMap”,则无需检查indexPath
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toMap" {
let destinationVC = segue.destination as! MapVC
destinationVC.selectedPlace = selectedPlace
/*
if let indexPath = placesTable.indexPathForSelectedRow {
destinationVC.selectedPlace = selectedPlace
}*/
}
}
当点击导航栏中的按钮触发segue时,为什么还要检查选定的索引路径?为什么要在PlaceDetailVC->MapVC
segue中检查indexPath?如果Map
右栏按钮项调用segue“toMap”“那么它将永远不会进入此条件。右上角栏上的映射正在调用toMap
segue。正确!您能检查一下吗,您是否从MapVC中的任何位置设置了此选定位置?是的,我确实设置了var selectedPlace:place=place()
而且XCode在生成时会出错。很高兴我能提供帮助:)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationVC = segue.destination as! MapVC
if let indexPath = placesTable.indexPathForSelectedRow {
destinationVC.selectedPlace = selectedPlace
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toMap" {
let destinationVC = segue.destination as! MapVC
destinationVC.selectedPlace = selectedPlace
/*
if let indexPath = placesTable.indexPathForSelectedRow {
destinationVC.selectedPlace = selectedPlace
}*/
}
}