1

右の詳細アクセサリがタップされて別のビューにタップされるたびに、マップ ビューからポイント アノテーションに関するデータを渡そうとしています。別のビューでは、ポイント アノテーションに関する詳細情報が表示されますが、このビューには表示されません。使用する必要があることはわかっていますoverride function prepareForSegueが、必要なことを行うために適切に設定するにはどうすればよいですか。ポイント注釈に関するその他の情報は Parse から取得されるため、クエリも設定する必要があると想定しています。助けてください!ありがとう!!!

4

2 に答える 2

1

最初にセグエを呼び出します。

performSegueWithIdentifier("segue")

次に、次の準備をします。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "segue" {
        let viewController = segue.destinationViewController as! YourViewController
        controller.setPoint = "10"
    }
}

これにより、セグエが発生する前に値が設定されます。それが役に立てば幸い!

于 2015-08-06T18:47:52.680 に答える
1

NSUserDefaults次の方法で、マップ ビューから別のビューに値を渡すために使用できます。

func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, calloutAccessoryControlTapped control: UIControl!) {

    let title = view.annotation.title
    NSUserDefaults.standardUserDefaults().setObject(title, forKey: "mapTitle")
    performSegueWithIdentifier("mapToCity", sender: self)

}

次のビューでは、次の方法で値を取得できます。

override func viewDidLoad() {
    super.viewDidLoad()
    let foo1 = NSUserDefaults.standardUserDefaults().objectForKey("mapTitle") as! String
    println(foo1)

}

詳細については、このサンプル プロジェクトを確認してください

于 2015-08-06T18:45:33.220 に答える