1

我正在 IOS5 中开发用户故事板的 iphone 应用程序。我创建了一个使用带有注释标注的 mapkit 的故事板。我能够使用 Storyboard 编辑器为按钮和表格行选择连接 push segues。我有在 MapKit 中使用自定义标注的经验,但无法弄清楚如何从标注中推送故事板中定义的视图控制器。我打算使用[self.navigationController pushViewController:abc animated:YES],但是,要做到这一点,我需要从情节提要中获取视图控制器或初始化一个新的视图控制器。我无权访问 NIB 名称,因为没有 NIB 名称。如何访问ViewController情节提要中定义的实例?有什么方法可以使用 Storyboard 编辑器将 PUSH Seques 连接到自定义地图注释标注?

提前致谢。

4

2 回答 2

1

您可以在视图控制器之间创建转场,这些转场是通过从一个视图控制器拖动到另一个视图控制器以编程方式执行的。然后在MKMapViewDelegate方法中,- (void)mapView:annotationView:calloutAccessoryControlTapped:只要您在情节提要中为 segue 提供了标识符,您就可以以编程方式执行 segue。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    // I've chosen to pass the annotation view as the sender here.
    // I'm assuming this view controller will be configured with data that
    // is backing the annotation view. By passing the view, you will be able
    // to inspect it and it's backing annotation in `prepareForSegue:sender:`
    [self performSegueWithIdentifier:@"ShowSomeViewController" sender:view];
}
于 2012-01-22T05:49:39.063 回答
1

我添加了一个按钮并通过控件将其拖动到视图控制器来执行。之后,我使用按钮的隐藏属性来确保它是隐藏的。您不能只控制将地图视图拖到另一个视图控制器。你必须为此使用一个按钮。确保你给你的 segue 一个标识符。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
    [self performSegueWithIdentifier:@"detailSegue" sender:view];
}
于 2012-05-09T13:39:09.963 回答