2015-03-13 27 views
-1

我解釋了我的問題:在我的iOS應用程序中,用Swift編寫的,我有一個mapview,使用mkmapkit,其中我添加了mkpoint註釋,總共七個。當我點擊每個註釋標註時,它將使用performSegueWithIdentifier打開一個新的視圖控制器。 我的問題是:我是否需要使用七個不同的視圖控制器,每個註釋標註一個,還是隻能使用一個視圖控制器?因爲視圖控制器設計必須對所有註釋標註輕拍都相同,但每個註釋輕觸不同的內容數據。是否有可能使用相同的視圖控制器來顯示每個不同的內容?

對不起,我的英語不好。我希望找出這個問題

+0

只使用一個viewcontroller,您可以傳遞標記以進行註釋。根據標籤你可以設置數據「或」傳遞數據沿着導航 – the1pawan 2015-03-13 11:17:12

+0

使用BOOL來確定使用什麼,例如:showKit – iphonic 2015-03-13 11:17:49

回答

0

當然,你應該只使用一個ViewController。您只需要將數據從您的MapViewController傳遞到ViewControllerperformSegue。並顯示它。

這種模式稱爲主從,你可以找到更多在這裏:
An iOS 8 Swift Split View Master-Detail Example

0

使用prepareForSegue個人信息傳遞給了同樣的觀點。

+0

我的視圖控制器必須只顯示圖像和文本視圖,每個註釋不同。如Zisoft示例中的 – Giuseppe 2015-03-13 11:24:00

+0

,通過使用destinationViewController.myimage = imageSelected傳遞選定的圖像和文本。 – 2015-03-13 11:27:23

3

當您通過performSegueWithIdentifier執行segue時,將調用prepareForSegue。重寫此方法將數據傳遞到目標ViewController:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "mySegueIdentifier" { 
     let destinationViewController = segue.destinationViewController as MyDestinationViewController 

     // pass data to destinationViewController 
     destinationViewController.myProperty = ... 
    } 
} 
+0

你的意思是視圖控制器的prepareForSegue在哪裏?或者我想爲每個註釋顯示我的信息的視圖控制器的prepareForSegue? – Giuseppe 2015-03-13 11:31:33

+0

調用視圖控制器。在這個函數中,seque在被執行之前被*準備好了。 – zisoft 2015-03-13 11:32:48

相關問題