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
    }*/

  }
}