0

ピンにコールアウトを追加しようとしています。これはマップ コールアウトを備えた初めてのアプリであり、すべてのピン コールアウトを外部ビューに向けるのに助けが必要です。

-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
    MKPinAnnotationView *MyPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"];
    MyPin.pinColor = MKPinAnnotationColorPurple;

    UIButton *advertButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    [advertButton addTarget:self action:@selector(button:) forControlEvents:UIControlEventTouchUpInside];

    MyPin.rightCalloutAccessoryView = advertButton;
    MyPin.draggable = NO;
    MyPin.highlighted = YES;
    MyPin.animatesDrop=TRUE;
    MyPin.canShowCallout = YES;

    return MyPin;
}

青い矢印の内側に触れたときに外部ビューを追加するにはどうすればよいですか?

4

2 に答える 2

0

メソッド内で、- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation次の行に沿って何かを試してください。

// Add button to callout
UIButton* advertButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinView.rightCalloutAccessoryView = advertButton;

(この例でpinViewは、 はそのメソッドから返されるビューです)

次に、同じクラスにメソッドを追加します。

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
    id <MKAnnotation> annotation = [view annotation];

    if ([annotation isKindOfClass:[MKPointAnnotation class]])
    {
        // TRANSITION TO VIEW HERE
    }
}

これを処理するクラスはデリゲートである必要がありますMKMapViewDelegate

于 2014-10-29T23:43:53.617 に答える