2016-11-08 24 views
0

一旦選擇一個引腳被選中我的應用程序,我想信息按鈕鏈接到下面的視圖控制器。推進到第二個視圖控制器與mapkit信息按鈕

2nd View Controller

我知道如何做到這一點,如果按鈕是從一開始就在屏幕上,但直到選擇引腳它不存在。我如何執行此操作?我的按鈕是目前簡單地編碼爲以下幾點:

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { 
    if control == view.rightCalloutAccessoryView { 
     print("Button tapped ") 
    } 
} 

而且,如果這是Segue公司我能有這樣的一個視圖控制器,並有文字和圖片的變化取決於其信息圖釘按鈕被點擊?

感謝您的幫助

回答

0

如果你的註釋有一個標題地圖視圖將通過委託方法

optional func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) 

此方法將由當您選擇地圖視圖被稱爲選擇註釋響應你的註釋。您可以在您已經指定爲地圖視圖代表的視圖控制器中實現此方法,並告訴地圖視圖委託要執行的操作,包括執行segue。這意味着,你有你的ViewController啓動,如:

class myMapViewController: UIViewController, MKMapViewDelegate { 
// Your class code starts here 

} 

然後在某處你的viewDidLoad()聲明,你的地圖視圖的代表是這一觀點的控制器:

self.myMapView.delegate = self 

所以,代表可以在調用執行segue之前編寫準備工作,然後在準備好segue之前準備目標視圖控制器,以便在選定的註釋上執行其操作。

請注意,委託方法爲您提供了所選的註釋視圖。與此註釋視圖一起使用的註釋通過以下方式獲得:

let theAnnotation = view.annotation 

在此委託方法中。

希望這會有所幫助。

+0

嗨感謝您的回覆,但它讓我有些困惑。我的委託方法是否位於視圖控制器中,然後與指定按鈕的功能一起使用?我只是困惑到我應該改變什麼。對不起,如果這是加劇,但我很新,迅速,不完全理解。如果你能再幫忙,那會很棒。 –

相關問題