0

私のiPhoneアプリには、ビューとMKMapViewを備えたコントローラーがあります。
マップ上にいくつかの注釈を表示しますが、注釈ビューをクリックすると、「calloutAccessoryControlTapped」がトリガーされますが、新しいビューをプッシュできません。
self.navigationViewがnullです...これを行うための最良の方法は何ですか?MKMapViewの上にナビゲーションコントローラーを作成する必要がありますか?

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
  NSLog(@"annotation clicked"); // => OK
  if ([control isKindOfClass:[UIButton class]]) {
    NSLog(@"annotation clicked 2"); // => OK

    // Get annotation as some stuff needs to be passed to the new view
    MyAnnotation *annotation = (MyAnnotation*)view.annotation;        

    ControlViewController *controlViewController = [[ControlViewController alloc] initWithNibName:@"ControlViewController" bundle:nil];
    controlViewController.thing = annotation.thing;

    NSLog(@"self.navigationController:%@", self.navigationController);  // => null

    // [self.navigationController pushViewController:controlViewController animated:YES];
    [controlViewController release];
  }
}
4

1 に答える 1

0

はい、ViewControllerはの中にある必要がありますUINavigationController。それを行う方法については、ドキュメントを確認してください。

于 2012-06-05T11:42:09.950 に答える