这是我的第一个问题,对错误感到抱歉。我找到了一些答案,但我的代码中没有任何效果。 首先
我制作了segue并添加了标识符。
这是在我的MainMapViewController中:
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
guard let annotation = mapView.selectedAnnotations.first else {return}
annotationPlace = annotation as? Place
self.performSegue(withIdentifier: "showDetail", sender: self)
}
func showPlaceDetail(segue: UIStoryboardSegue){
let viewController = segue.destination as? PlaceDetailTableViewController
viewController?.selectedPlace = annotationPlace
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
showPlaceDetail(segue: segue)
}
}
这是我的PlaceDetailTableViewController:
import UIKit
class PlaceDetailTableViewController: UITableViewController {
var selectedPlace:Place?
override func viewDidLoad() {
super.viewDidLoad()
dump(selectedPlace as Any)
print(selectedPlace?.title)
}
}
在我看来,它与VC之间的正常传递数据有所不同,因为我必须从注释按钮中创建segue
答案 0 :(得分:0)
尝试这种方式:
DynamicHtml += "<tr><td onclick='populateModal()'>" + arr[i].step + "</td><td></td><td>"+ arr[i].task +"</td><td onclick='gotoMachine(* VAR HERE*)'>"+ arr[i].machine +"</td> </tr>"
删除override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
if let toViewController = segue.destination as? PlaceDetailTableViewController {
toViewController.selectedPlace = annotationPlace
}
}
}
功能。并在 dumb 方法之前打印showPlaceDetail
。