gpt4 book ai didi

swift - 如何使 map 注释标注在 Swift 中打开一个新的 View Controller ?

转载 作者:搜寻专家 更新时间:2023-11-01 06:23:43 24 4
gpt4 key购买 nike

我正在尝试通过单击 map 标注来打开新 View 。
在 obj-C 中我的代码是这样的:

//Callout
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control{
if ([view.annotation isKindOfClass:[Annotation class]])
{
Annotation *myAnn = (Annotation *)view.annotation;
id vcToPush = nil;
if ([[myAnn title] isEqualToString:@"View1"]){
vcToPush = [[View1 alloc]init];
}
if ([[myAnn title] isEqualToString:@"View2"]){
vcToPush = [[View2 alloc]init];
}
if ([[myAnn title] isEqualToString:@"View3"]){
vcToPush = [[View3 alloc]init];
}
[self.navigationController pushViewController:vcToPush animated:YES];
}
}

Swift 中的等价物是什么?
目前我已经知道了,但我卡住了:

//Pin type and callout
func mapView(_mapView: MKMapView!,
viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {

if annotation is MKUserLocation {
//return nil so map view draws "blue dot" for standard user location
return nil
}

let reuseId = "pin"

var pinView = MapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView
var rightCalloutAccessoryView: UIView!
if pinView == nil {
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView!.canShowCallout = true
pinView!.pinColor = .Red

pinView!.rightCalloutAccessoryView = UIButton.buttonWithType(.DetailDisclosure) as UIButton
}
else {
pinView!.annotation = annotation

}
return pinView
}

func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, calloutAccessoryControlTapped control: UIControl!) {

}

我环顾四周,但我能找到的唯一答案并不能真正解决我的问题。
感谢您的帮助!

最佳答案

试试这个:

func mapView(MapView: MKMapView!, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {

if control == annotationView.rightCalloutAccessoryView {
performSegueWithIdentifier("NameOfYourSegue", sender: self)
println("Going to the next VC!")
}
}

关于swift - 如何使 map 注释标注在 Swift 中打开一个新的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462814/

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