我想在地圖視圖和控制器之間創建一個segue。但是,按住Ctrl鍵並嘗試在地圖視圖和控制器之間建立連接不起作用。我看到有人說你可以通過使用performSegueWithIdentifier
以編程方式調用它,但我甚至不能創建一個segue來爲它分配一個標識符,以便稍後可以調用它。如果什麼都沒有解決,我只是要創建一個隱藏的按鈕,讓一個segue,並調用在地圖視圖點擊segue。但是,如果沒有這種做法,我想知道。無法從MapKitView繼續到控制器
回答
首先了解您需要什麼樣的細節。可能你想用後退按鈕回到地圖。簡單的方法是將所有VC嵌入到導航控制器中。我們最後會這樣做。
讓ctrl +從第一個VC拖到第二個。確保你縮小了,你不是選擇了按鈕,而是選擇了整個VC。這樣我們就創建了手動節點。爲標識符提供一個合適的名稱,因爲我們需要稍後在代碼中引用它。
現在到了檢查器中設置所述標識符如上所述。確保你選擇了兩個VC之間的循環賽事。
然後進入第一個VC,ctrl +拖動放大後的地圖來設置一個動作。對於我的情況,我有一個名爲pop的按鈕,我將通過Ctrl +將其拖動到實現文件來設置操作。
之後,我希望用戶點擊POP,在你的情況下,地圖或標記,然後發射我們創建的segue。
的代碼是:
- (IBAction)pop:(id)sender {
[self performSegueWithIdentifier:@"push" sender:self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"push"]) {
//get the presenting vc here
id destionationVC=segue.destinationViewController;
//put some values to it
//destionationVC.value=2; //something;
//done
}
}
如果您現在嘗試運行,你會崩潰。因爲Push segues需要將UINavigationController作爲它的根視圖控制器。在這樣做的時候,我們會自動獲得一個後退按鈕。所以選擇第一個VC,在你的情況下,選擇MaPVC並選擇嵌入導航控制器。像這樣,
然後運行該應用程序,然後通過單擊我的案例中的Pop來繼續。不過,如果適用的話,請使用這個概念。有什麼問題歡迎?
P.S performSegueWithIdentifier輪流調用您的-prepareSegue實現。如果你沒有實現這個方法,它會調用UIViewControllers -prepareSegue。那是一些繼承去那裏。無論如何,希望它有幫助。
我接受這個答案,因爲我不知道可以創建手動遊戲。但是,您無法將操作添加到MapView,因此它們不能有segag。於是,我創建了一個手動segue,然後在MapView中添加了一個UITapGestureRecognizer,並向識別器添加了一個動作來執行segue。 – Gasim 2014-10-06 11:25:36
- 1. 繼續從appdelegate到視圖控制器
- 2. 無法找到控制在asp.net中繼器控制
- 3. 限制mapkitview
- 4. 在我編輯控制器之前,請繼續獲取「資源無法找到」
- 5. 控制檯計算器繼續計算
- 6. sem_wait無法繼續
- 7. 無法從軌控制器
- 8. 無法從控制器
- 9. 無法添加從其他類繼承的模型控制器
- 10. 無法從中繼器的項目模板訪問控制ID
- 11. Laravel確認控制器方法並繼續執行任務
- 12. Xcode 4 UIButton繼續推送到桌面視圖控制器
- 13. mysql:InnoDB:無法繼續運行
- 14. 會話無法繼續
- 15. 無法從另一個控制器加載控制器
- 16. 繼承控制器
- 17. 無法從一個控制器重定向到另一個控制器 - Spring MVC
- 18. 我的默認控制器無法找到父控制器
- 19. 使用ajax呼叫控制器無法找到控制器
- 20. 通過視圖控制器繼續計時器
- 21. 子控制器不從父控制器繼承
- 22. 無法從System.Security.Claims.ClaimsPrincipal到繼承
- 23. 繼續在新的控制檯
- 24. 無法從呈現視圖控制器
- 25. 無法從控制器Spring MVC中
- 26. ASP.net MVC無法從控制器
- 27. 無法從其它控制器
- 28. 無法從控制器封裝類
- 29. Laravel。我無法從控制器
- 30. 無法從Rails控制器渲染JavaScript
要創建一個可以以編程方式調用的segue,請按住Ctrl鍵並從視圖控制器圖標拖動到目標場景。你不能從MKMapView啓動一個segue,因爲它不支持動作 – Paulw11 2014-10-05 07:46:02
我要在這裏討論主題。爲了模擬點擊動作,我應該爲它創建一個手勢識別器嗎? – Gasim 2014-10-05 07:50:14
通常情況下,如果您使用輕擊手勢識別器,但是您可以嘗試它,那麼當有人點擊某個註釋時,您會觸發一個segue - 我認爲會有錯誤觸發的風險。 – Paulw11 2014-10-05 07:51:34