私がやろうとしているのは、誰かが以下の UIAlertAction シーケンスを介して「Call Location」ボタンを押したときに、電話をロードして、コードで以前に割り当てた電話番号 (ViewDidLoad で) をダイヤルすることです。これは、この時点で持っている私の annotationView - calloutAccessory コードです。
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
let stores = view.annotation as! Stores
let placeHours = stores.seasonhours
let placeHours1 = stores.offseasonhours
let phoneInfo = stores.phone
let ac = UIAlertController(title: placeHours, message: placeHours1, preferredStyle: .alert)
ac.addAction(UIAlertAction(title: "Call Location", style: .default))
ac.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: nil))
present(ac, animated: true)
}
これをどのようにコーディングしますか?
注:私はコーディングが初めてなので、助けていただければ幸いです。
更新:私はこれを自分で考え出しました。最初の ac.addAction 行で、これを次のように変更しました。
ac.addAction(UIAlertAction(title: "Call Location", style: .default, handler: {action in
if let url = URL(string: "tel://\(phoneInfo)") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}))