是否有可能到上彈出返回時回到與註解MKMap觀點仍然是一個新的視圖控制器上顯示與地圖標註的進一步細節的視圖控制器在那個位置。我似乎無法在SDK文檔中找到似乎表明它可能的方法。MKMap註釋顯示視圖控制器,而不是彈出框
0
A
回答
2
找到了答案,以我自己的問題,如果你做到以下幾點:
你可以做的是使用一個觀察者,而不是因此在
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
方法,你可以這樣添加代碼:
當用戶點擊在屏幕上註釋//Add an observer for the selected-property on the MKAnnotationView. Delegate to self.
[annotationView addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
annotationView.annotation = annotation;
annotationView.canShowCallout = NO;
然後創建觀察者捕獲這將調用該方法來呈現任何視圖:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context{
NSString *action = (NSString*)context;
if([action isEqualToString:GMAP_ANNOTATION_SELECTED]){
BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
if (annotationAppeared) {
[self showAnnotation:((AssetAnnotationView*) object).annotation];
}
else {
//NSLog(@"annotation deselected %@", ((AssetAnnotationView*) object).annotation.title);
//[self hideAnnotation];
}
}
}
然後讓你的方法,其顯示任何你想要模態的視圖或:
- (void)showAnnotation:(AssetAnnotationView*)annotation {
UINavigationController *aNavController = [[UINavigationController alloc] initWithRootViewController:self.assetInfoViewController];
aNavController.navigationBar.barStyle = UIBarStyleBlack;
[self presentModalViewController:aNavController animated:YES];
[aNavController release];
}
取消選擇在viewWillAppear中:
的NSArray *選定= [localMapView selectedAnnotations]; (id選中註解){ [localMapView deselectAnnotation:annotation animated:NO]; }
0
您還可以爲您創建的每個註釋使用標籤。適用於我。
相關問題
- 1. 調用視圖控制器類而不彈出視圖控制器本身
- 2. 無法在Swift 3.0中將視圖控制器顯示爲彈出控制器
- 3. MKMap註釋選擇
- 4. viewWillDisappear:確定是否正在彈出視圖控制器或正在顯示子視圖控制器
- 5. 彈出幾個視圖控制器,但顯示所有人
- 6. 顯示和彈出多個視圖控制器
- 7. 不使用導航控制器時彈出視圖控制器?
- 8. 從MKMapKit中的註釋標註按鈕顯示另一個視圖控制器
- 9. MKMap查看顯示只有網格不顯示地圖視圖
- 10. Wscript.Echo在什麼情況下顯示爲彈出框而不是控制檯
- 11. iPhone釋放模式視圖控制器也彈出推控制器到堆棧?
- 12. 將視圖控制器彈出到一個不存在的視圖控制器
- 13. 在註釋視圖中不顯示DetailDisclosureButton
- 14. iPhone - 彈出操作後釋放視圖控制器
- 15. 第二視圖控制器不顯示
- 16. popToRootViewControllerAnimated不顯示根視圖控制器
- 17. MVC +控制器視圖不顯示
- 18. UINavigationController不顯示根視圖控制器
- 19. 導航控制器不顯示視圖
- 20. Popover視圖控制器不顯示
- 21. MVYSideMenu彈出到根視圖控制器
- 22. 彈出到初始視圖控制器
- 23. 視圖控制器彈出ttthumbsviewcontroller
- 24. 不會彈出到子視圖控制器的父視圖
- 25. self.navigationController popToViewController不是彈出來的右視圖控制器
- 26. 從視圖控制器顯示新的視圖控制器
- 27. 展開UIStoryboardSegue而不顯示先前的視圖控制器
- 28. 使用MFMailComposeViewController而不顯示視圖控制器
- 29. 僅在FW1中使用控制器而不顯示視圖
- 30. iPhone:如何在iPhone中顯示像控制器與圖像的彈出視圖?
請確保您取消選擇viewDidAppear/viewWillAppear中的annotaiton,否則您將陷入與我相同的問題,無法再次選擇註釋。 – vladzz 2010-06-21 09:34:08
你如何取消選擇註釋?我在這裏嘗試沒有成功。 – goo 2010-08-05 00:01:02
不是這樣做的最有效的方法。但是這種方法似乎工作。 NSArray * selected = [localMapView selectedAnnotations]; for(id註解選中){localViewView deselectAnnotation:annotation animated:NO]; } –
vladzz
2010-08-06 23:19:50