我在注释上有正确的按钮,如下所示:
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
rightButton.tag = [annotation index];
[rightButton addTarget:self action:@selector(annotationViewClick:) forControlEvents:UIControlEventTouchUpInside];
customAnnotationView.rightCalloutAccessoryView = rightButton;
在我的annotationViewClick方法中,我通常会使用'initWithNibName'和pushViewController
导航到详细视图控制器当我使用故事板时,我该怎么做?我猜我需要一个赛格? 有人请我朝正确的方向努力。
答案 0 :(得分:2)
通过将IB从源视图控制器(视图控制器本身,而不是其中的任何控件)拖动到目标视图控制器来定义segue。在检查员中为它指定一个标识符。
现在,您可以使用annotationViewClick:
以编程方式从您喜欢的任何地方(例如,[self performSegueWithIdentifier:@"myIdentifier" sender:self]
方法)执行该segue。 (请注意,所述方法不允许您访问目标视图控制器,因此您可能仍希望实现prepareForSegue:sender:
以根据挖掘的注释来配置它。)
答案 1 :(得分:0)
这听起来像是MKMapView
?
您无法在MKMapView
的故事板中添加注释。您必须在MKMapViewDelegate
的代码中使用此方法执行此操作:
- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id<MKAnnotation>)annotation
答案 2 :(得分:0)
在情节提要中,通过“检查器”窗口,为目标视图控制器提供标识符(名称),例如LocationDetailControllerIdentifier
在通过点击注释视图的标注附件触发的方法中:
LocationDetailController *ldc = [self.storyboard instantiateViewControllerWithIdentifier:@"LocationDetailControllerIdentifier"]; // do further customization if needed ldc.title = @"Title"; ... //assuming you are using UINavigationController [self.navigationController pushViewController:ldc animated:YES];
-