2016-03-30 8 views
1

私はいくつかのマーカーを持つマップ上で作業しています、私は画像と各マーカーのいくつかのテキストを表示する情報ビューを作成したい。別のビューにデータを渡す方法

map

私は情報ボタンを押したときに、それは情報の表示になります。

map2

私は、コード上でこれを持っている:

func mapView(mapView: MKMapView, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { 
    if control == annotationView.rightCalloutAccessoryView { 

     performSegueWithIdentifier("showInfo", sender: data) 

    } 
} 

しかし、私はそれぞれの画像を表示することができるように、「場所」からのデータを渡したいです。

Swiftでこれを行う必要があります。

ありがとうございます。

+0

[ビューコントローラ間でデータを受け渡す]の可能複製(http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – Ujjwal

答えて

4

データを保持していない場合は、このメソッドをクラスに追加し、データを宛先ビューのデータに渡す必要があります。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showInfo" { 
     let destination = segue.destinationViewController as! YourViewController 
     //this will execute before next ViewController's viewDidLoad method 
     destination.data = sender 
    } 
} 
0

あなたviewControllerprepareForSegue関数をオーバーライドする必要があります。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

     if "showInfo" == segue.identifier { 
      // Then pass your data 
      let destController = segue.mapViewController as! YourViewController 
      destController.yourData = sender 
     } 
    } 
0

は、あなたのviewcontrollerに情報ボタンのコンセントを接続します。次に、以下のようfuncを作成します。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if "YourSegue" == segue.identifier { 
     // Then pass your data 
    } 
} 
関連する問題