gpt4 book ai didi

iphone - 单击引脚注释时如何显示另一个 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:08 26 4
gpt4 key购买 nike

我在我的 pin 注释上添加了一个详细信息按钮。我想去另一个 View 。当我点击它时,以下代码不起作用。我不知道问题出在哪里。

- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
MKPinAnnotationView *pinAnnotation = nil;
if(annotation != mapview.userLocation)
{
static NSString *defaultPinID = @"myPin";
pinAnnotation = (MKPinAnnotationView *)[mapview dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if ( pinAnnotation == nil )
pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

pinAnnotation.canShowCallout = YES;

//instatiate a detail-disclosure button and set it to appear on right side of annotation
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinAnnotation.rightCalloutAccessoryView = infoButton;

}

return pinAnnotation;
}

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{

if ([(UIButton*)control buttonType] == UIButtonTypeDetailDisclosure){
annotationViewController *detailView=[[annotationViewController alloc] initWithNibName:@"annotationViewController" bundle:nil];

[[self navigationController] pushViewController:detailView animated:YES];
[detailView release];
}
}

最佳答案

方法 - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 是一个委托(delegate)方法。这就是为什么您需要将 mapview 的委托(delegate)设置为实现此方法的类(此处为 self),以便调用它。

您还需要告诉类您正在实现 MKMapViewDelegate 方法。为此,在您的 .h 中更改此行:

@interface MyViewController : UIViewController

收件人:

@interface MyViewController : UIViewController <MKMapViewDelegate>

现在应该调用您的方法。

关于iphone - 单击引脚注释时如何显示另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com