-4

我是一个业余程序员,最近才开始尝试 xcode。我在谷歌上搜索试图在我的应用程序中找到我当前问题的答案。(我稍后会谈到。)我在 Stackoverflow.com 上找到了一个很好的答案,尽管我不确定如何在我自己的编码中实现它。(链接:在 Xcode 中打开原生谷歌地图

编辑:基本上:我正在使用一个选项卡应用程序,其中一个选项卡中有一个地图视图,您可以根据编码看到它我有诸如混合、卫星等之类的东西,以及一个显示位置的坐标的注释针,当您单击它时,您可以看到一个按钮。正是从这里我不知道该怎么做,因为我希望该按钮将您链接到您 iPhone 上的“地图”应用程序,为您提供从当前位置到该位置的路线。这个问题是在我写的链接中提出的。它收到了一个答案,尽管我不知道如何在我自己的编码中实现它。

这是我自己的代码:

视图控制器.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface SecondViewController : UIViewController{
MKMapView *mapview;
}

@property (nonatomic, retain) IBOutlet MKMapView *mapview;
-(IBAction)setMap:(id)sender;
-(IBAction)getlocation;

@end

视图控制器.m

#import "SecondViewController.h"
#import "Annotation.h"

@implementation SecondViewController
@synthesize mapview;
-(IBAction)getlocation {
mapview.showsUserLocation = YES;
}
-(IBAction)setMap:(id)sender {
switch (((UISegmentedControl *) sender).selectedSegmentIndex) {
    case 0:
        mapview.mapType = MKMapTypeStandard;
        break;
    case 1:
        mapview.mapType = MKMapTypeSatellite;
        break;
    case 2:
        mapview.mapType = MKMapTypeHybrid;
        break;
    default:
        break;
}
}


-(void)viewDidLoad {



[super viewDidLoad];
[mapview setMapType:MKMapTypeStandard];
[mapview setZoomEnabled:YES];
[mapview setScrollEnabled:YES];
[mapview setDelegate:self];

MKCoordinateRegion bigBen = { {0.0, 0.0} , {0.0, 0.0} };
bigBen.center.latitude = 38.849977;
bigBen.center.longitude = -122.519531;
bigBen.span.longitudeDelta = 0.02f;
bigBen.span.latitudeDelta = 0.02f;
[mapview setRegion:bigBen animated:YES];

Annotation *ann1 = [[Annotation alloc] init];
ann1.title = @"Name";
ann1.subtitle = @"Street";
ann1.coordinate = bigBen.center;
[mapview addAnnotation: ann1];
}

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


UIButton *advertButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
if ([[annotation title] isEqualToString:@"The Place"]) {
    [advertButton addTarget:self action:@selector(BigBenClicked:) forControlEvents:UIControlEventTouchUpInside];
}


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

return MyPin;
}

-(void)button:(id)sender {

NSLog(@"Button action");

}


@end

干杯!

4

1 回答 1

0

您已经设置了按下按钮时的选择器。只需实现该方法,它应该可以工作。

-(void)BigBenClicked:(id)sender {
    NSURL *url = [self getURL];
    [[UIApplication sharedApplication] openURL:url];
}
于 2012-12-27T23:16:54.880 回答